参照設定を使用せずにアクセスでフォルダ選択ダイアログを使うには

この記事は約3分で読めます。

アクセスには、ファイルやフォルダを選択するダイアログは用意されていません。

ファイル選択ダイアログを起動させたところ

ネットで検索すると、エクセルの「GetOpenFilename」をアクセスで使ったり、Officeオブジェクトのファイル選択ダイアログを使うという方法がヒットします。

このブログでは、以前、参照設定を使わずにファイルを選択するダイアログを実行する方法を紹介しました。今回は、フォルダを選択するダイアログを実行する方法を紹介したいと思います。

使用される際は、そちらの環境で十分テストのうえ使用してください。

Function FolderSelect()

Dim varTgtFldNM As Variant

On Error GoTo ErrorHandler  'エラー処理を宣言します。エラーが生じたら ErrorHandler 部分へ飛びます。

'ファイル参照用の設定値をセットします。
'ファイルを選択する場合は、msoFileDialogFolderPicker → 4(定数)
With Application.FileDialog(4)

     'ダイアログタイトル名
     .Title = "フォルダを選択してください"
     
     '複数ファイル選択を可能にする場合はTrue、不可の場合はFalse。
     .AllowMultiSelect = False

     '最初に開くホルダーを当ファイルのフォルダーとします。
     .InitialFileName = CurrentProject.Path & "\"

    If .Show = -1 Then 'ファイルが選択されれば -1 を返します。
    
        FolderSelect = .SelectedItems(1)
    Else
        Exit Function
    End If
End With

Exit Function

ErrorHandler:

     MsgBox "予期せぬエラーが発生しました" & Chr(13) & _
             "エラーナンバー:" & Err.Number & Chr(13) & _
             "エラー内容:" & Err.Description, vbOKOnly
     Exit Function
End Function

コードを実行すると、このようにフォルダ選択ダイアログが出現します。

フォルダ選択ダイアログ

コメントをどうぞ!