ダイアログでファイルを開く
2020年7月5日
ダイアログ
外部のデータファイルなどからファイルを取り込んで処理をする場合に、特定のファイル名や特定のフォルダにあるファイルではなく、任意のファイルを指定できると便利です。
Windows Applicationでファイル開くときや保存する時に選択できるダイアログを使いましょう。
ダイアログの3つの方法です。
FindFile Method
Syntax: expression.FindFile
ダイアログ ボックスを表示し選択したファイルを開きます。
1 2 3 4 5 6 7 8 9 |
Sub M_FindFile() ' '選択したファイルを開く 'FindFile メソッド ' Application.FindFile '[ファイルを開く]ダイアログ、選択ファイルを開く End Sub |
Application.GetOpenFilename Method
Syntax: expression.GetOpenFilename (FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
ファイル名を取得するために、[ファイルを開く] ダイアログ ボックスを表示します。
ダイアログ ボックスで指定したファイルは、開かれるわけではないため、取得したファイル名に対して開く処理を追加します。
下記は、[Workbooks.Open oFN] でファイルを開いています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub M_GetOpenFilename() ' '[ファイルを開く] ダイアログボックスでファイル名を取得 'Application.GetOpenFilename メソッド ' Dim oFN As String '変数:oFN(openFineName)ファイル名を格納 oFN = Application.GetOpenFilename("エクセルファイル, *.xl* ;*.csv") '.GetFileNameでダイアログを表示 If oFN <> False Then 'もし選択した(oFNがFalseで無い)場合 Workbooks.Open oFN 'oFNを開く End If End Sub |
Application.FileDialog Properties
Syntax: expression.FileDialog (fileDialogType)
Parameterの(fileDialogType)はファイルダイアログの種類で必須の定数です。
MsoFileDialogTypeクラスの定数
・msoFileDialogFilePicker ファイルを選択
・msoFileDialogFolderPicker フォルダを選択
・msoFileDialogOpen ファイルを開く
・msoFileDialogSaveAs ファイルを保存
下記例は、
・ 1 つ以上のファイルを選択できるファイル ダイアログを開き
・選択された各ファイルのパスを表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub M_FileDialogOpen() ' 'ファイルダイアログを開きファイルを選択 'Application.FileDialog プロパティ ' With Application.FileDialog(msoFileDialogOpen) '(msoFileDialogOpen)でファイルを開くダイアログ .AllowMultiSelect = True '複数選択 .Show ' For i = 1 To .SelectedItems.Count '選択した数だけループ処理 MsgBox .SelectedItems(i) '(i)番目のファイル名を表示する(MsgBox) Next i ' End With End Sub |
どれを使う?
3種のダイアログを使用したファイルの開き方を示しましたが、どのタイプが良いか?
用途に応じて使い分ける。
私の場合多用する場面では、複数のファイル指定あるいはフォルダを一括処理したいとの用途が多いので、必然的に fFileDialogということになりますが。
FindFile メソッド
○ 記述が簡単。単に開くだけなら一番シンプル
☓ 複数のファイルを選択できない
☓ 最初に開くフォルダを設定するのが面倒
Application.GetOpenFilename メソッド
○ 複数のファイルを選択できる
☓ 最初に開くフォルダを設定するのが面倒
Application.FileDialog プロパティ
○ 複数のファイルを選択できる
○ 最初に開くフォルダを指定できる
○ フォルダも選択できる
☓ 記述が多い