FileDialogオブジェクトによるファイル・フォルダ選択

このページと次のページでは前のページ(FileDialogグオブジェクトの概要)で解説したファイルダイアログオブジェクトについて、具体的な使用例をそれぞれ挙げていきます。

ファイルダイアログオブジェクトにはある程度決まった使い方がありますので、それをしっかり覚えておきましょう。

スポンサーリンク

使用例

ファイルを選択する(msoFileDialogFilePicker)

ファイルダイアログオブジェクトでファイルを選択する例です。この例では、複数ファイルの選択を可能にし、ファイルフィルタと初期表示フォルダの設定を行っています。ファイルを選択して OK ボタンを押すと、選択したファイルパスの一覧をメッセージボックスに表示します。

ファイルダイアログオブジェクトの使用方法やプロパティとメソッドについては前ページ(以下のリンク先)を参照してください。

 
ファイルダイアログオブジェクトの使用方法
ファイルダイアログオブジェクトのプロパティ・メソッド解説

Sub sample_ef014_01()
    Dim strFiles    As String
    Dim i           As Integer

    With Application.FileDialog(msoFileDialogFilePicker)
        'ファイルの複数選択を可能にする
        .AllowMultiSelect = True
        'ファイルフィルタのクリア
        .Filters.Clear
        'ファイルフィルタの追加
        .Filters.Add "エクセルブック", "*.xls*"
        .Filters.Add "その他", "*.txt; *.doc*"
        '初期表示フォルダの設定
        .InitialFileName = "C:¥Users¥Guest¥test¥"

        If .Show = -1 Then  'ファイルダイアログ表示
            ' [ OK ] ボタンが押された場合
            For i = 1 To .SelectedItems.Count
                strFiles = strFiles & vbLf & .SelectedItems(i)
            Next i

            MsgBox "以下のファイルが選択されました。" & _
                    vbLf & strFiles, vbInformation
        Else
            ' [ キャンセル ] ボタンが押された場合
            MsgBox "ファイル選択がキャンセルされました。", vbExclamation
        End If
    End With

End Sub

 MsgBox関数 For…Next Withステートメント

下図はテスト用の初期表示フォルダの状態です。フォルダ内にはエクセルファイル以外にもテキストファイルやワードファイルがあります。

サンプルフォルダとその中身
初期表示フォルダとその中身

上記サンプルマクロを実行すると、ファイル選択画面が表示されます。最初のファイルフィルタにエクセルの拡張子(.xls)を設定したため、初期表示画面にはエクセルブックのみ表示されます。

ファイルダイアログの初期表示画面
ファイルダイアログの初期表示画面

ファイルフィルタにはエクセルブックとその他の2種類が正しく追加されています。

ファイルフィルタリストの内容
ファイルフィルタリストの内容

ファイルを複数選択してみます。複数のファイルを選択するには Shift または Ctrl キーを押した状態でファイルをクリックします。この例では Ctrl キーを押した状態でファイルをクリックしています。ファイルを選択したら、OK ボタンを押下します。

複数のファイルを選択
複数のファイルを選択

選択したファイルのパスが正しく表示されました。

 [ OK ] ボタン押下
[ OK ] ボタン押下

なお、ファイル選択画面で キャンセル ボタンを押下すると、下記メッセージが表示されます。

 [ キャンセル ] ボタン押下
[ キャンセル ] ボタン押下

フォルダを選択する(msoFileDialogFolderPicker)

ファイルダイアログオブジェクトでフォルダを選択する例です。フォルダ選択のため、AllowMultiSelect プロパティや Filters プロパティの設定は不要です。ファイルを選択して OK ボタンを押すと、選択したフォルダパスをメッセージボックスに表示します。

ファイルダイアログオブジェクトの使用方法やプロパティとメソッドについては前ページ(以下のリンク先)を参照してください。

 
ファイルダイアログオブジェクトの使用方法
ファイルダイアログオブジェクトのプロパティ・メソッド解説

Sub sample_ef014_02()

    With Application.FileDialog(msoFileDialogFolderPicker)
        '初期表示フォルダの設定
        .InitialFileName = "C:¥Users¥Guest¥test¥"

        If .Show = -1 Then  'ファイルダイアログ表示
            ' [ OK ] ボタンが押された場合
            MsgBox "以下のフォルダが選択されました。" & _
                    vbLf & .SelectedItems(1), vbInformation
        Else
            ' [ キャンセル ] ボタンが押された場合
            MsgBox "フォルダ選択がキャンセルされました。", vbExclamation
        End If
    End With

End Sub

 MsgBox関数 Withステートメント

下図はテスト用の初期表示フォルダの状態です。フォルダ内にはサブフォルダが2つあります。

サンプルフォルダとその中身
初期表示フォルダとその中身

上記のサンプルマクロを実行すると、フォルダ選択画面が表示されます。この画面にはフォルダ以外のファイルは表示されません。

ファイルダイアログの初期表示画面
ファイルダイアログの初期表示画面

フォルダを選択して OK ボタンを押下します。

フォルダを選択
フォルダを選択

選択したフォルダパスが正しく表示されました。

 [ OK ] ボタン押下
[ OK ] ボタン押下

なお、フォルダ選択画面で キャンセル ボタンを押下すると、下記メッセージが表示されます。

 [ キャンセル ] ボタン押下
[ キャンセル ] ボタン押下
タイトルとURLをコピーしました