こんばんは。
nanana-blog管理人のナナナです。
ブログを訪問し記事を読んでいただきありがとうございます。
ExcelのVBAで読み込むファイルを選択するためにファイルダイアログを表示させる方法があります。
ダイアログを表示させるには「GetOpenFilename」と「FileDialog」を使う方法があります。
本日はExcelのBVAでファイルダイアログを表示させる方法を紹介します。
目次
開発タブを表示させる
Excel ブックを開き「ファイル ⇒ オプション」をクリックします。
「リボンのユーザ設定」をクリックし、「開発」にチェックを入れてOKボタンをクリックします。

ボタンを作成してVBScript作成画面を表示
開発タブの「挿入 ⇒ ボタン」をクリックします。
Excelの空いているところでクリックをしてボタンを作成します。

マクロの登録画面が表示されるので、「新規作成」ボタンをクリックします。

VBAを記述画面が表示されます。

ファイルを開くダイアログを使ったマクロのサンプル
Application.GetOpenFilenameを使う方法
サンプルコード
Sub ボタン1_Click() Dim FileName As String FileName = Application.GetOpenFilename("CSVファイル,*.csv") MsgBox FileName End Sub
1行目の「Dim FileName As String」で文字列の変数「FileName」を生成しています。
この変数にファイルのパスが格納されます。
3行目の「FileName = Application.GetOpenFilename("CSVファイル,*.csv")」でファイルダイアログを表示させます。
括弧内の「"CSVファイル,*.csv"」で選択ファイルのフィルターをかけます。
カンマの前が拡張子の説明で、後ろがフィルターです。
Application.FileDialogを使う方法
サンプルコード
Sub ボタン1_Click() Dim FileName As String With Application.FileDialog(msoFileDialogFilePicker) .Filters.Clear .Filters.Add "CSVファイル", "*.csv" If .Show = True Then FileName = .SelectedItems(1) End If End With MsgBox FileName End Sub
1行目の「Dim FileName As String」で文字列の変数「FileName」を生成しています。
この変数にファイルのパスが格納されます。
3行目の「With Application.FileDialog(msoFileDialogFilePicker)」でファイルダイアログの種類を設定しています。
定数 | 内容 |
---|---|
msoFileDialogFilePicker | ファイル選択するダイアログ |
msoFileDialogFolderPicker | フォルダを選択するダイアログ |
msoFileDialogOpen | ファイルを開くダイアログ |
msoFileDialogSaveAs | ファイルを保存するダイアログ |
4行目の「.Filters.Clear」でダイアログのフィルターをすべてクリアしています。
デフォルトでセットされているフィルターは「"すべてのファイル","*.*"」です。
5行目の「.Filters.Add "CSVファイル", "*.csv"」で新規にフィルターを追加します。
フィルターは複数設定することができます。
6~8行目でダイアログを表示させて、選択されたファイルのパスを変数に格納しています。
最後に
いかがだったでしょうか。
本日はExcel VBAでファイルを開くダイアログを表示する方法を紹介しました。
ファイルを開くダイアログはExcel VBAでプログラムを作成していると結構使います。
サンプルプログラムはコピーしてそのまま使えるので、良かった使ってください。