ここではFileDialogオブジェクトを使う方法と、Shell関数を使う方法の2種類を紹介します。
標準モジュールコード(初期フォルダを指定する方法)では、ダイアログで「OK」ボタンがクリックされフォルダが選択された場合、If Right$(s1, 1) <> "\" Then s1 = s1 + "\" で最後の「¥」をチェックし、なければ強制的に「¥」を付けるようにしています。
このプロシージャはパターンなので特に気にせず、毎回使い回しすればいいかと思います。
関連するTipsの「Dir フォルダ一覧を作成するExcel関数」も参照してください。コマンドボタン クリックイベントでフォルダ選択ダイアログを開く
Private Sub CommandButton1_Click()
CommandButton1.Caption = SelectFolder_FileDialog
End Sub
フォルダ選択ダイアログExcel標準モジュールコード
Public Function SelectFolder_FileDialog()
If Application.FileDialog(msoFileDialogFolderPicker).Show Then
SelectFolder_FileDialog = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
Else
SelectFolder_FileDialog = ""
End If
End Function
フォルダ選択ダイアログExcel標準モジュールコード(初期フォルダを指定する方法)
Public Function SelectFolder_FileDialog(iniDir As String) As String
Dim s1 As String
'フォルダ選択ダイアログ
With Application.FileDialog(msoFileDialogFolderPicker)
'タイトル
.Title = "フォルダを選択してください"
'初期フォルダ
.InitialFileName = iniDir
If .Show = -1 Then
'選択された
s1 = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
If Right$(s1, 1) <> "\" Then s1 = s1 + "\"
SelectFolder_FileDialog = s1
Else
SelectFolder_FileDialog = ""
End If
End With
End Function
フォルダ選択ダイアログの画面
コマンドボタン クリックイベントでフォルダ選択ダイアログを開く
Private Sub CommandButton1_Click()
CommandButton1.Caption = SelectFolder_Shell
End Sub
フォルダ選択ダイアログExcel標準モジュールコード
Public Function SelectFolder_Shell()
Dim Shell, myPath
Set Shell = CreateObject("Shell.Application")
Set myPath = Shell.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, "C:\")
If Not myPath Is Nothing Then
SelectFolder_Shell = myPath.Items.Item.Path
Else
SelectFolder_Shell = ""
End If
End Function
フォルダ選択ダイアログの画面
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します