アクセスには、ファイルやフォルダを選択するダイアログは用意されていません。
ネットで検索すると、エクセルの「GetOpenFilename」をアクセスで使ったり、Officeオブジェクトのファイル選択ダイアログを使うという方法がヒットします。
このブログでは、以前、参照設定を使わずにファイルを選択するダイアログを実行する方法を紹介しました。今回は、フォルダを選択するダイアログを実行する方法を紹介したいと思います。
Function FolderSelect() As String On Error GoTo ErrHNDL 'エラー処理を宣言します。エラーが生じたら ErrHNDL 部分へ飛びます。 'フォルダ参照用の設定値をセットします。 'フォルダを選択する場合は、msoFileDialogFolderPicker → 4(定数) With Application.FileDialog(4) 'ダイアログタイトル名 .Title = "フォルダを選択してください" '複数ファイル選択を可能にする場合はTrue、不可の場合はFalse。 .AllowMultiSelect = False '最初に開くフォルダーを、当ファイルが存在しているフォルダーとします。 .InitialFileName = CurrentProject.Path & "\" If .Show = -1 Then 'ファイルが選択されれば -1 を返します。 FolderSelect = .SelectedItems(1) Else FolderSelect = "" Exit Function End If End With Exit Function ErrHNDL: MsgBox Err.Number & vbCrLf & Err.Description Exit Function End Function
コードを実行すると、このようにフォルダ選択ダイアログが出現します。
コメントをどうぞ!
とても素晴らしい記事をありがとうございました。
とても助かりました。
けーいち様
コメントありがとうございます。お役に立てたようで何よりです。
Dim varTgtFldNM As Variant
この行は不要ですよね。FileSelectのコピペの残りでしょうか。
Function定義の戻り値の型宣言も省略しないほうがよろしいかと。
void様
コメントありがとうございました。
お見込みのとおりです。修正いたしました。
ご指摘いただきまして、ありがとうございました。