ユーザーにフォルダーを選択してもらう
マクロ 77回
マクロの実行時にフォルダを選択できるようにする
いつも同じ規定のフォルダからファイルを開く場合や、保存する場合は直接アドレスからのファイルネームで指定しますが、
フォルダを変更する場合もあるかもしれません。
今回は、ユーザがフォルダを選択するための“フォルダーの選択”ダイアログボックスを使う場合を紹介します。
“フォルダーの選択”ダイアログボックス
1. ファイル ダイアログを開くには、Application.FileDialogプロパティを利用して FileDialog オブジェクトを取得します。
![ユーザーにフォルダーを選択してもらう1”](gazo2019/macro/macro77_01.png)
2. フォルダを選択するコードを記述してみましょう。
Sub フォルダーの選択() With Application.FileDialog(msoFileDialogFolderPicker) .Show MsgBox .SelectedItems(1) End With End Sub
3.マクロを実行すると、フォルダの選択画面が表示されます。
![ユーザーにフォルダーを選択してもらう2](gazo2019/macro/macro77_02.png)
4. フォルダーを選択してOKを押すとMsgBoxにフォルダ名が表示されます。
![ユーザーにフォルダーを選択してもらう3” border=”0](gazo2019/macro/macro77_03.png)
ダイアログボックスで“ファイルの選択”
5.ファイルを選択する場合は、コードの定数部分を msoFileDialogFilePickerに変更します。
Sub ファイルの選択() With Application.FileDialog(msoFileDialogFilePicker) .Show MsgBox .SelectedItems(1) End With End Sub
![ユーザーにファイルを選択してもらう4](gazo2019/macro/macro77_04.png)
ファイルを選択してOKをクリックすると、選択したファイル名がメッセージボックスに表示されます。
![ユーザーにフォルダーを選択してもらう5](gazo2019/macro/macro77_05.png)
ダイアログボックスで“複数ファイルの選択”
7. 複数ファイルを選択する場合は、コードに次の .AllowMultiSelect = Trueを追加します。
また、複数のファイル名を順番に表示するために、For~Nextステートメントをつかいます。
Sub 複数ファイルーの選択() Dim fileCount As Long With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True .Show For fileCount = 1 To .SelectedItems.Count MsgBox .SelectedItems(fileCount) Next fileCount End With End Sub
実行すると、ダイアログボックスで複数のファイルを選択することができます。
![ユーザーにフォルダーを選択してもらう6](gazo2019/macro/macro77_06.png)
7. ファイルを2つ選択したので、最初の1つ目のファイル名がメッセージボックスに表示されました。
![ユーザーにフォルダーを選択してもらう7](gazo2019/macro/macro77_07.png)
8. 2つ目のファイル名がメッセージボックスに表示されました。今回は以上です。
![ユーザーにフォルダーを選択してもらう8](gazo2019/macro/macro77_08.png)