ダイアログでファイルを開く

ダイアログ

外部のデータファイルなどからファイルを取り込んで処理をする場合に、特定のファイル名や特定のフォルダにあるファイルではなく、任意のファイルを指定できると便利です。
Windows Applicationでファイル開くときや保存する時に選択できるダイアログを使いましょう。
ダイアログの3つの方法です。

 

FindFile Method
Syntax: expression.FindFile
ダイアログ ボックスを表示し選択したファイルを開きます。

 

 

 

Application.GetOpenFilename Method
Syntax: expression.GetOpenFilename (FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
ファイル名を取得するために、[ファイルを開く] ダイアログ ボックスを表示します。
ダイアログ ボックスで指定したファイルは、開かれるわけではないため、取得したファイル名に対して開く処理を追加します。
下記は、[Workbooks.Open oFN] でファイルを開いています。

 

 

Application.FileDialog Properties
Syntax: expression.FileDialog (fileDialogType)

Parameterの(fileDialogType)はファイルダイアログの種類で必須の定数です。
MsoFileDialogTypeクラスの定数
・msoFileDialogFilePicker ファイルを選択
・msoFileDialogFolderPicker フォルダを選択
・msoFileDialogOpen ファイルを開く
・msoFileDialogSaveAs ファイルを保存

下記例は、
・ 1 つ以上のファイルを選択できるファイル ダイアログを開き
・選択された各ファイルのパスを表示

 

どれを使う?

3種のダイアログを使用したファイルの開き方を示しましたが、どのタイプが良いか?
用途に応じて使い分ける。
私の場合多用する場面では、複数のファイル指定あるいはフォルダを一括処理したいとの用途が多いので、必然的に fFileDialogということになりますが。

FindFile メソッド

○ 記述が簡単。単に開くだけなら一番シンプル
☓ 複数のファイルを選択できない
☓ 最初に開くフォルダを設定するのが面倒

Application.GetOpenFilename メソッド

○ 複数のファイルを選択できる
☓ 最初に開くフォルダを設定するのが面倒

Application.FileDialog プロパティ

○ 複数のファイルを選択できる
○ 最初に開くフォルダを指定できる
○ フォルダも選択できる
☓ 記述が多い