[[20210125065607]] 『フォルダ(パス)を選択するのにダイアログを表示』(動画ファン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フォルダ(パス)を選択するのにダイアログを表示して指定する』(動画ファン)

多階層のフォルダー(パス)構造のパスを指定するのに
 現在は、セル(B2)にフルパスを記入する形式を利用しています。

Private Sub CommandButton1_Click()

    Call setFileList(Cells(2, 2))
End Sub

これを変更して、
 フォルダ(パス)を選択するのにダイアログを表示して指定するようにしたいのですが
どう改造すればいいですか ?

< 使用 Excel:Excel2019、使用 OS:Windows10 >


「ExcelVBA フォルダを指定するダイアログ」でネット検索してみては?
(検索手伝い) 2021/01/25(月) 07:06

Call setFileList(Cells(2,2))
で以下のModule1にパスを引き継いでます。

Sub setFileList(searchPath)

で以下のように修正すると
ダイアログが表示されてパスが引き継がれると思いましたが
 エラー(実行エラー 5 / プロシージャの呼び出し、又は引数が不正です。)が出ました。

Private Sub CommandButton1_Click()

    Dim folderPath As String
    folderPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
    Call setFileList(folderPath)
End Sub

(動画ファン) 2021/01/25(月) 08:39


 このサイトには検索機能があるのですから、
 FileDialog(msoFileDialogFolderPicker) 
 をキーワードにして検索すれば、使用例がいくつもでてきますよ
(´・ω・`) 2021/01/25(月) 09:41

以下で一応処理できましたが、補足ありましたらお願いします。

Private Sub CommandButton1_Click()

    Dim SearchPath As String

    Application.FileDialog(msoFileDialogFolderPicker).Show
    SearchPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)

    Call setFileList(SearchPath)

End Sub
(動画ファン) 2021/01/25(月) 10:23


 フォルダ選択ダイアログで、キャンセルされたときエラーになりませんか?
 そのあたりの対処も、検索結果にありませんでしたか?
(´・ω・`) 2021/01/25(月) 10:49

ご指摘感謝します。
そうですね、キャンセルを考慮していませんでした

キャンセル時のエラー処理を追加しました。
他に補足ありましたらお願いします。

Private Sub CommandButton1_Click()

    Dim SearchPath As String

    If Application.FileDialog(msoFileDialogFolderPicker).Show = -1 Then
       SearchPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)
       Call setFileList(SearchPath)
    Else
        MsgBox "処理終了", vbOKOnly + vbInformation, "キャンセル選択"
    End If

End Sub

(動画ファン) 2021/01/25(月) 11:15


http://officetanaka.net/excel/vba/tips/tips39.htm
の書き方も参考になるでしょうか。

(検索手伝い) 2021/01/25(月) 11:32


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.