『For Each f In fso.GetFolderの書式』(みず) こんばんは。 For Each f In fso.GetFolder("D:\VBA検証" & "\data").Files With Workbooks.Open(f.Path) With .Worksheets(1) 処理  End With End With Next f を使ってフォルダー内すべてのファイルを処理をしています。 このフォルダー内の特定のファイルのみ処理する必要があり With Application.FileDialog(msoFileDialogFilePicker) .Show strPath = .SelectedItems(1) End With End Sub を使いファイルを選択する様にしたのですが For Each f In fso.GetFolder("D:\VBA検証" & "\data").Files With Workbooks.Open(f.Path) With .Worksheets(1) ()の中に"strPath"や".SelectedItems(1)"を入れても うまく動きません。 どのように変更すれば良いかわかりません。 どなたかご教授願えますでしょうか? < 使用 Excel:Office365、使用 OS:Windows10 > ---- >For Each f In fso.GetFolder("D:\VBA検証" & "\data").Files としていますが、結局対象とするフォルダは何ですか? strPath = .SelectedItems(1) で取得したフォルダ? それとも、"D:\VBA検証" & "\data"?   前者なら For Each f In fso.GetFolder(strPath).Files ということなのかな。 (γ) 2020/01/29(水) 00:29 ---- お世話になります。 対象とするフォルダは、"D:\VBA検証" & "\data"なんですが、 直接ファイルを選択したくて ファイルを選択する処理を入れました。 For Each f In fso.GetFolder(strPath).Files と 書き換えてみましたが”パスがありません”となります。 (みず) 2020/01/29(水) 09:11 ---- お世話になります。 ”For Each f In fso.GetFolder("D:\VBA検証" & "\data").Files ”を削除して ”With Workbooks.Open(f.Path)”を”With Workbooks.Open(strPath)”としましたら 選択したファイルのみ処理できました。 ありがとうございました。 (みず) 2020/01/29(水) 09:18 ---- あら〜 調べてたら解決済でしたか^^; なんで、1回選択したのに、わざわざFSOを持ち出すのか不明 For Each f In fso.GetFolder("D:\VBA検証" & "\data").Files としたら、選択した意味がなくないです? って、フォルダーを選択するのかな。。。(そっちは試してなかった><) Option Explicit Sub test() Dim objSelectedItems As FileDialogSelectedItems Dim v As Variant If GetFullPath(objSelectedItems) = False Then Exit Sub For Each v In objSelectedItems with Workbooks.Open(v) with .Worksheets(1) '************ 'ここで何かする '************ Stop .Close False End with Next End Sub Function GetFullPath(ByRef fd As FileDialogSelectedItems) As Boolean With Application.FileDialog(msoFileDialogFilePicker) .AllowMultiSelect = True .Filters.Clear .Filters.Add "エクセルブック", "*.xls*" .InitialFileName = "C:\Users\Guest\test\" If .Show Then Set fd = .SelectedItems GetFullPath = True End If End With End Function (まっつわん) 2020/01/29(水) 09:46 ---- まっつわん様 お世話になります。 FSOとかよくわからないまま 最初は指定したフォルダー内にあるファイルをすべて処理すると 言う事でネットで調べて使ってみました。 使っている内にフォルダを選択するようにしたい、ファイルを直接選択して処理したいなど 出てきたので、継ぎはぎだらけになり 何が必要で、何が不要かしっかり確認しないままになっていました。 教えて頂いたプログラムを自分なりに理解して使わせて頂きます。 ありがとうございました。 (みず) 2020/01/29(水) 10:10 ---- 読み違えていまして、失礼しました。 てっきり Application.FileDialog(msoFileDialogFolderPicker) を使っているのかと即断してしまいました。 ファイルを指定するのであれば、下記の記事も参考になると思います。 [名前を指定してブックを開く] http://officetanaka.net/excel/vba/file/file02.htm (γ) 2020/01/29(水) 12:08