AccessのFileDialogオブジェクトを使用してフォルダのみ選択する[フォルダ選択]ダイアログボックスを表示するサンプルプログラムを覚書。
例えば、このフォルダに保存されている全てのcsvファイルを読み込ませて、それぞれのファイルに何か処理をするみたいなプログラムを書くことがよくある。
そういう場合、[ファイルを開く]ダイアログボックスを使ってフォルダのみ選択できるようにしたいので、その方法を覚書。
参考記事
フォルダの中のファイル全部じゃなくて特定の複数のファイルを指定したいなら以下の記事を参照してください。
VBA:AccessのFileDialogで[ファイルを開く]ダイアログボックスを表示し、複数のファイルを選択できるようにするサンプルプログラム
AccessのFileDialogオブジェクトを使用して複数のファイルを選択できるダイアログボックスを表示して利用する方法について覚書します。
フォルダ選択ダイアログサンプルプログラムの動作前提条件
後述するAccessのVBAのサンプルプログラムの動作確認は、Access 2013で行っています。
また、FileDialogオブジェクトを使用する際には必ず[参照設定]で以下のオブジェクトライブラリの参照を有効にして置く必要があります。
参照を有効化するオブジェクトライブラリ
Microsoft Office 15.0 Object Library
※15.0というバージョンは、Accessのバージョンによって異なります。
オブジェクトライブラリの参照手順
以下に「Microsoft Office 15.0 Object Library」の参照手順を記載します。
- Accessのリボンツールバーの[作成]タブをクリックする。
- [作成]タブの右端にある[Visual Basic]をクリックする。
- [Microsoft Visual Basic for Applications]画面(VBAエディタ)が開くので[ツール]メニューの[参照設定]をクリックする。
- [参照可能なライブラリ ファイル]の一覧(五十音順に並んでいます)から「Microsoft Office 15.0 Object Library」のチェックをオンにして[OK]をクリックする。
フォルダ選択ダイアログサンプルプログラム
FileDialogオブジェクトを使用してフォルダ選択ダイアログボックスを表示するには、FileDialogオブジェクトの定数に"msoFileDialogFolderPicker"を指定する。
Sub FolderDialogSample()
Dim dlg As Object, boolResult As Boolean
'オブジェクト変数にFileDialogオブジェクトを代入
Set dlg = Application.FileDialog(msoFileDialogFolderPicker)
'FileDialogオブジェクトの各種プロパティを設定
With dlg
.Title = "フォルダを指定してください"
.ButtonName = "選択" 'デフォルトは[OK]
.InitialFileName = "c:¥"
End With
'[ファイルを開く]ダイアログボックスを表示する
boolResult = dlg.Show
If boolResult Then
MsgBox "選択されたフォルダは、「" & dlg.SelectedItems(1) & "」です。"
Else
'[キャンセル]ボタンが押された場合の処理
MsgBox "[キャンセル]ボタンが押されました。"
End If
End Sub
FileDialogオブジェクトの記事がバラバラとちらばってあるので一度まとめよう。
コメント