Dialogでフォルダを指定
読み込む、または保存などで、任意のフォルダを指定する
前提条件
- Dialogを表示し、フォルダを指定する
- Dialog上でキャンセルボタンを押下した場合は、処理を行わない
- 初期表示DialogはActiveWorkBookのフォルダか否か選べる
仕様
- 初期表示Dialogに指定するフォルダがある場合は引数に持たせる。持たせない場合はActiveWorkBookのフォルダになる
- キャンセル押下時は返値(選択フォルダパス)が空欄(””)
'------------------------------------------------------
'Dialogを表示し任意のフォルダを取得
'
' 戻値:選択フォルダパス
'
' 引数:アクティブブックフォルダフラグ(省略時False)
'-------------------------------------------------------
Function GetFolderUseDialog(Optional strInitPath As String = "") As String
Dim strSelecedtFolder As String '取得フォルダ名
strSelecedtFolder = ""
'msoFileDialogFolderPickerを使用
With Application.FileDialog(msoFileDialogFolderPicker)
'もし引数がない場合、アクティブワークブックが格納されているフォルダDialogが初期表示される
'引数がある場合、そのフォルダを初期表示する
If strInitPath = "" Then
.InitialFileName = ActiveWorkbook.Path
Else
.InitialFileName = strInitPath
End If
'Dialogが表示され、OKを押下したら値を返す
If .Show = True Then
strSelecedtFolder = .SelectedItems(1)
End If
End With
GetFolderUseDialog = strSelecedtFolder
End Function
呼び出し方
Sub test()
Dim strFileName As String
strFileName = ""
strFileName = GetFolderUseDialog("C:\temp") '初期表示Dialogを指定
【または】
strFileName = GetFolderUseDialog() '初期表示Dialogを未指定=ActiveWorkBookのフォルダが表示
If strFileName = "" Then
'未選択時の処理
Else
'選択時の処理
End If
End Sub
初期表示Dialogを指定した場合 C:\tempが初期表示
初期表示Dialogを指定しなかった場合 ActiveWorkBookのフォルダが表示