■キーワード
ダイアログ ファイルパス フォルダパス
※参照設定で「Microsoft Office XX.X Object Library」(XXX.X はバージョン番号)への参照を有効に設定する。
【ファイルを参照するダイアログボックスを表示する場合】
Sub selectFilePath() Dim targetPath As String Dim objDialog As Object 'FileDialogオブジェクト格納用 'FileDialogオブジェクトをインスタンス化 Set objDialog = Application.FileDialog(msoFileDialogFilePicker) '初期表示されるフォルダパスを設定 objDialog.InitialFileName = "C:\Users\デスクトップ\テスト" 'ダイアログを開いて選択したフォルダを親フォルダパスに指定 If objDialog.Show Then targetPath = objDialog.SelectedItems(1) MsgBox targetPath Else MsgBox "ファイル選択キャンセル" End If End Sub
【フォルダを参照するダイアログボックスを表示する場合】
Sub selectFolderPath() Dim targetPath As String Dim objDialog As Object 'FileDialogオブジェクト格納用 'FileDialogオブジェクトをインスタンス化 Set objDialog = Application.FileDialog(msoFileDialogFolderPicker) 'ダイアログを開いて選択したフォルダを親フォルダパスに指定 If objDialog.Show Then targetPath = objDialog.SelectedItems(1) MsgBox targetPath Else MsgBox "フォルダ選択キャンセル" End If End Sub
■FileDialogオブジェクトの各プロパティを使用したコードの例
Sub testDialog() Dim targetPath As String Dim objDialog As Object 'FileDialogオブジェクト格納用 'FileDialogオブジェクトをインスタンス化 Set objDialog = Application.FileDialog(msoFileDialogFilePicker) objDialog.InitialFileName = ThisWorkbook.Path objDialog.Filters.Clear objDialog.Filters.Add "テキスト", "*.txt", 1 objDialog.Filters.Add "エクセル", "*.xlsx", 2 objDialog.Filters.Add "すべてのファイル", "*.*", 3 objDialog.FilterIndex = 3 If objDialog.Show Then targetPath = objDialog.SelectedItems(1) MsgBox targetPath Else MsgBox "フォルダ選択キャンセル" End If End Sub
■msoFileDialogオブジェクトの主なプロパティ
プロパティ | 内容 |
---|---|
Title | ダイアログボックスのタイトルを指定する |
ButtonName | 操作ボタンに表示される文字列を指定する |
AllowMultiSelect | 複数ファイルの選択が可能かどうかを設定する |
InitialFileName | 初期表示されるファイル名やフォルダのパスを指定する |
Filters | ダイアログボックスで選択できるファイルの種類を設定する |
FilterIndex | ダイアログボックスを開いたときに表示されるファイルの種類を設定する |
SelectedItems | ユーザーが選択したファイルのパスを取得する |
メソッド | 内容 |
Show | ダイアログボックスを表示し、「キャンセル」ボタンが選択されると「0」を、それ以外が選択されると「-1」を返す |
※InitialViewプロパティの主なMsoFileDialogViewクラスの定数
定数 | 内容 |
---|---|
msoFileDialogViewDetails | 詳細表示 |
msoFileDialogViewLargeIcons | 大きいアイコンで表示 |
msoFileDialogViewList | 一覧表示 |
msoFileDialogViewPreview | プレビューで表示 |
msoFileDialogViewProperties | プロパティで表示 |
msoFileDialogViewSmallIcons | 小さいアイコンで表示 |
msoFileDialogViewThumbnail | 縮小表示 |