ユーザーにフォルダーを選択してもらう

ユーザーにフォルダーを選択してもらう
ユーザーにフォルダーを選択してもらう

マクロ 77回

マクロの実行時にフォルダを選択できるようにする

いつも同じ規定のフォルダからファイルを開く場合や、保存する場合は直接アドレスからのファイルネームで指定しますが、 フォルダを変更する場合もあるかもしれません。

今回は、ユーザがフォルダを選択するための“フォルダーの選択”ダイアログボックスを使う場合を紹介します。

“フォルダーの選択”ダイアログボックス

1. ファイル ダイアログを開くには、Application.FileDialogプロパティを利用して FileDialog オブジェクトを取得します。


ユーザーにフォルダーを選択してもらう1”

2. フォルダを選択するコードを記述してみましょう。

Sub フォルダーの選択()
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Show
            MsgBox .SelectedItems(1)
    End With
End Sub

3.マクロを実行すると、フォルダの選択画面が表示されます。


ユーザーにフォルダーを選択してもらう2

4. フォルダーを選択してOKを押すとMsgBoxにフォルダ名が表示されます。


ユーザーにフォルダーを選択してもらう3” border=”0

ダイアログボックスで“ファイルの選択”

5.ファイルを選択する場合は、コードの定数部分を msoFileDialogFilePickerに変更します。

Sub ファイルの選択()
    With Application.FileDialog(msoFileDialogFilePicker)
        .Show
            MsgBox .SelectedItems(1)
    End With
End Sub

ユーザーにファイルを選択してもらう4

ファイルを選択してOKをクリックすると、選択したファイル名がメッセージボックスに表示されます。


ユーザーにフォルダーを選択してもらう5

ダイアログボックスで“複数ファイルの選択”

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

7. ファイルを2つ選択したので、最初の1つ目のファイル名がメッセージボックスに表示されました。


ユーザーにフォルダーを選択してもらう7

8. 2つ目のファイル名がメッセージボックスに表示されました。今回は以上です。


ユーザーにフォルダーを選択してもらう8