Excel

【Excel VBA】ファイルを開くダイアログを表示させる方法

こんばんは。

nanana-blog管理人のナナナです。

ブログを訪問し記事を読んでいただきありがとうございます。

ExcelのVBAで読み込むファイルを選択するためにファイルダイアログを表示させる方法があります。

ダイアログを表示させるには「GetOpenFilename」と「FileDialog」を使う方法があります。

本日はExcelのBVAでファイルダイアログを表示させる方法を紹介します。

開発タブを表示させる

Excel ブックを開き「ファイル ⇒ オプション」をクリックします。

「リボンのユーザ設定」をクリックし、「開発」にチェックを入れてOKボタンをクリックします。

Excelのオプション

ボタンを作成してVBScript作成画面を表示

開発タブの「挿入 ⇒ ボタン」をクリックします。

Excelの空いているところでクリックをしてボタンを作成します。

Excelのボタン挿入画面

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

マクロの登録画面

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

VisualBasic for Applications

ファイルを開くダイアログを使ったマクロのサンプル

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でプログラムを作成していると結構使います。

サンプルプログラムはコピーしてそのまま使えるので、良かった使ってください。

www.nanana-blog.com

www.nanana-blog.com

www.nanana-blog.com

www.nanana-blog.com

www.nanana-blog.com