ブック選択ダイアログボックスの表示
FileDialogプロパティに引数でmsoFileDialogFolderPickerを指定して実行すると、ブック選択を行う「参照」ダイアログボックスが表示されます。
FileDialogプロパティの詳細については「VBAでファイルダイアログを表示する」をご参照ください。このページではブック選択を行う「参照」ダイアログボックスに特化して説明します。
ダイアログボックスの操作はコード上では3段階に分けて処理を行うことになります。
- FileDialogプロパティの引数にmsoFileDialogFolderPickerを指定して実行し、FileDialogオブジェクトを取得する。
- FileDialogオブジェクトのShowメソッドで「ブック選択」ダイアログボックスを表示する。(その後、ダイアログボックスでの操作を行う。)
- FileDialogオブジェクトのSelectedItemsプロパティを使ってFileDialogSelectedItemsコレクションに格納されているフォルダ情報を使う。
構文
Application.FileDialog(msoFileDialogFolderPicker) As FileDialog
引数にはMsoFileDialogType列挙型の「ブック選択」を表示するためのmsoFileDialogFolderPicker定数を指定します。
使い方
Application.FileDialogプロパティに「ブック選択」ダイアログを表示するためのmsoFileDialogFolderPicker定数を指定します。
Showメソッドを使ってブックの選択を行う「参照」ダイアログを表示します。ダイアログの「開く」ボタンを押した場合は-1、キャンセルボタンか×ボタンを押した場合は0が返ります。そのため0が返された場合はそこで処理を終了しています。
「参照」ダイアログでフォルダを選択して「開く」ボタンを押すと、FileDialogオブジェクトのSelectedItemsプロパティで取得できるFileDialogSelectedItemsコレクションにフォルダ情報が格納されます。
それ以降に参照したフォルダをどう扱うかはいろいろあると思いますが、ここではFileDialogSelectedItemsコレクションを使って参照したフォルダをイミディエイトウィンドウに出力しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Sub FileDialogFolderPicker() Dim fd As FileDialog Dim ret Dim buf Dim sFolder '// フォルダを選択ダイアログを設定 Set fd = Application.FileDialog(msoFileDialogFolderPicker) '// ダイアログを開く ret = fd.Show '// キャンセルボタンまたは×ボタンの場合 If ret = 0 Then '// キャンセル時は処理を抜ける Exit Sub End If '// フォルダパスを取得 sFolder = fd.SelectedItems.Item(1) '// フォルダパスを出力 Debug.Print sFolder End Sub |