VBAには、組み込みのダイアログボックスがあります。
これを活用すると、ファイルやフォルダの選択が簡単になります。ユーザーの意思をマクロで取り込めるので、マクロの使い勝手がよくなります。
ファイルを選択する組み込みダイアログボックスで一つ気をつけたことがあるので、その点を紹介します。
<目次>
このマクロでできること
ファイル選択ダイアログで絞り込んだファイルの種類を解除します。
マクロの解説
組み込みのダイアログボックスを使って、ファイルを選択します。
このとき、14行目と39行目でダイアログボックスのタイトルを変更できます。
また、16行目~19行目で表示するファイルの種類を限定できます。
以下のようにWordファイルのみを表示できます。
ただ、ひとつ気をつける必要があります。
ここでファイルの種類を限定すると、次に別のマクロでファイル選択ダイアログボックスを開いたときに、この限定した設定が残ってしまっています。
そのため、Excelファイルを開きたいのに、Wordファイルしか表示されていないという事態に陥ります。
そこで、次のマクロでどのファイルでも選択できるよう、限定条件を解除します。それが23行目と25行目です。
解除後は、以下のように全てのファイルが表示されます。
マクロ
Sub ファイル選択ダイアログのファイル設定() Dim myFilePath As String ' Wordファイルパス Dim myFD As FileDialog Set myFD = Application.FileDialog(msoFileDialogFilePicker) '------------------------------------------------ 'Wordファイルの選択 '------------------------------------------------ With myFD .AllowMultiSelect = False .Title = "Wordファイルを選択してください" With .Filters .Clear .Add "すべてのWordファイル", "*.doc; *.docx" End With If .Show = -1 Then myFilePath = .SelectedItems(1) .Filters.Clear Else .Filters.Clear Exit Sub End If End With MsgBox myFilePath '------------------------------------------------ '任意のファイルの選択 '------------------------------------------------ With myFD .AllowMultiSelect = False .Title = "ファイルを選択してください" If .Show = -1 Then myFilePath = .SelectedItems(1) Else Exit Sub End If End With MsgBox myFilePath End Sub