【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