Excel VBA 質問スレッド №1971 (未解決)
fso.CopyFileで、フォルダの中にあるファイルを見つけてくれない。
投稿者 : exiad 投稿日時 : 2024/07/23(Tue) 15:58:20 OS : Windows 10 EXCEL : Excel 2019
あるフォルダから、他のフォルダへフォルダ内のファイルを一括コピーするVBAを作っているのですが、
下記のVBAを書いて実行すると「ファイルが見つかりません」というエラーが出て、フォルダー内にある
xlsxファイル、pdfファイルを認識してくれません。何が悪いのでしょうか?
お手数ですが、よろしくお願いいたします。
あるフォルダから、他のフォルダへフォルダ内のファイルを一括コピーするVBAを作っているのですが、
下記のVBAを書いて実行すると「ファイルが見つかりません」というエラーが出て、フォルダー内にある
xlsxファイル、pdfファイルを認識してくれません。何が悪いのでしょうか?
お手数ですが、よろしくお願いいたします。
Sub OpenFilesInFolder() Dim path, fso, file, files, pfl, fl, fl2 path = ThisWorkbook.path Set fso = CreateObject("Scripting.FileSystemObject") Set pfl = fso.GetFolder(path) Dim s As String Dim t As String For Each fl In pfl.SubFolders s = fl.path t = "\\192.168.1.242\vbs\4.経理\小口データ保存\小口2024年\小口09月分" fso.CopyFile Source:=s & "" & "*.xlsx", Destination:=t, overwritefiles:=False fso.CopyFile Source:=s & "" & "*.pdf", Destination:=t, overwritefiles:=False Next End Sub
スポンサーリンク
[返信 1] Re : fso.CopyFileで、フォルダの中にあるファイルを見つけてくれない。
投稿者 : さんこう 投稿日時 : 2024/07/23(Tue) 16:23:46
>フォルダー内にあるxlsxファイル、pdfファイルを認識してくれません。
「s & "" & "*.xlsx"」で表されるファイルが存在しないのでしょう。
現状のコードで、「\\aaa\bbb\ccc」フォルダの「ddd.xlsx」を見つけようとしているなら、
「\\aaa\bbb」フォルダに「cccddd.xlsx」があれば見つけられるでしょう。
>フォルダー内にあるxlsxファイル、pdfファイルを認識してくれません。
「s & "" & "*.xlsx"」で表されるファイルが存在しないのでしょう。
現状のコードで、「\\aaa\bbb\ccc」フォルダの「ddd.xlsx」を見つけようとしているなら、
「\\aaa\bbb」フォルダに「cccddd.xlsx」があれば見つけられるでしょう。
[返信 2] Re : fso.CopyFileで、フォルダの中にあるファイルを見つけてくれない。
投稿者 : exiad 投稿日時 : 2024/07/23(Tue) 17:14:48
■[返信 1] さんこうさん(2024-07-23 16:23:46)の記事
> >フォルダー内にあるxlsxファイル、pdfファイルを認識してくれません。
>
> 「s & "" & "*.xlsx"」で表されるファイルが存在しないのでしょう。
>
>
> 現状のコードで、「\\aaa\bbb\ccc」フォルダの「ddd.xlsx」を見つけようとしているなら、
>
> 「\\aaa\bbb」フォルダに「cccddd.xlsx」があれば見つけられるでしょう。
>
>
>
*はワイルドカードで、フォルダ下にあるすべてのxlsxファイルを表しているつもりです。
他に良い方法はあるでしょうか?
■[返信 1] さんこうさん(2024-07-23 16:23:46)の記事
> >フォルダー内にあるxlsxファイル、pdfファイルを認識してくれません。
>
> 「s & "" & "*.xlsx"」で表されるファイルが存在しないのでしょう。
>
>
> 現状のコードで、「\\aaa\bbb\ccc」フォルダの「ddd.xlsx」を見つけようとしているなら、
>
> 「\\aaa\bbb」フォルダに「cccddd.xlsx」があれば見つけられるでしょう。
>
>
>
*はワイルドカードで、フォルダ下にあるすべてのxlsxファイルを表しているつもりです。
他に良い方法はあるでしょうか?
[返信 3] Re : fso.CopyFileで、フォルダの中にあるファイルを見つけてくれない。
投稿者 : とおりすがり 投稿日時 : 2024/07/23(Tue) 17:33:17
さんこうさんは回りくどい言い方してますが、単純にパスの区切り文字がないです
fso.CopyFile Source:=s & "\" & "*.xlsx", Destination:=t, overwritefiles:=False
さんこうさんは回りくどい言い方してますが、単純にパスの区切り文字がないです
fso.CopyFile Source:=s & "\" & "*.xlsx", Destination:=t, overwritefiles:=False
[返信 4] Re : fso.CopyFileで、フォルダの中にあるファイルを見つけてくれない。
投稿者 : どうかしてるぜ 投稿日時 : 2024/07/24(Wed) 09:26:42
>さんこうさんは回りくどい言い方してますが、単純にパスの区切り文字がないです
>現状のコードで、「\\aaa\bbb\ccc」フォルダの「ddd.xlsx」を見つけようとしているなら、
>「\\aaa\bbb」フォルダに「cccddd.xlsx」があれば見つけられるでしょう。
うそでしょ。なんで↑こんな言い方しかできないの?
ほんと信じられん。
>さんこうさんは回りくどい言い方してますが、単純にパスの区切り文字がないです
>現状のコードで、「\\aaa\bbb\ccc」フォルダの「ddd.xlsx」を見つけようとしているなら、
>「\\aaa\bbb」フォルダに「cccddd.xlsx」があれば見つけられるでしょう。
うそでしょ。なんで↑こんな言い方しかできないの?
ほんと信じられん。
[返信 5] Re : fso.CopyFileで、フォルダの中にあるファイルを見つけてくれない。
投稿者 : 匿名 投稿日時 : 2024/07/24(Wed) 11:45:11
>うそでしょ。なんで↑こんな言い方しかできないの?
>ほんと信じられん。
些細な事かもしれませんが、
私はさんこう様の言い回しが好きです。
理由は、質問者本人に、パスの区切り文字がない事を
気づいて欲しい場合には、この様な言い回しが良いと思うからです。
さんこう様のような回答を頂き、よく読む事(今回は「cccddd.xlsx」)で自分の間違えに気づく、
そして、コピペでできたではなく、自分で気づいているので、
次回以降も間違えずにコードを書ける、
或いは、間違えても自分で気づけるようになり、
その積み重ねが、VBAが出来るようになる事に繋がると
思っているからです。
事実、さんこう様の回答に、
>*はワイルドカードで、フォルダ下にあるすべてのxlsxファイルを表しているつもりです。
と自分の間違えを誤って捉えているように思えます。
さんこう様は、
例を挙げて(この場合の例はddd.xlsx)
cccddd.xlsx
としているのでしょう?。
cccとdddがつながっている時点で、cccフォルダ内ではなく、
bbbフォルダからcccddd.xlsxを探そうとしているのでは?
とヒントを差し上げているのだと思います。
だって名前が「さんこう」なのですから…
過去ログを見ても、さんこう様は、参考にしてね。のような
返信を良くしていますよ。
回答をつける人を非難するのは良くないと思います。
>うそでしょ。なんで↑こんな言い方しかできないの?
>ほんと信じられん。
些細な事かもしれませんが、
私はさんこう様の言い回しが好きです。
理由は、質問者本人に、パスの区切り文字がない事を
気づいて欲しい場合には、この様な言い回しが良いと思うからです。
さんこう様のような回答を頂き、よく読む事(今回は「cccddd.xlsx」)で自分の間違えに気づく、
そして、コピペでできたではなく、自分で気づいているので、
次回以降も間違えずにコードを書ける、
或いは、間違えても自分で気づけるようになり、
その積み重ねが、VBAが出来るようになる事に繋がると
思っているからです。
事実、さんこう様の回答に、
>*はワイルドカードで、フォルダ下にあるすべてのxlsxファイルを表しているつもりです。
と自分の間違えを誤って捉えているように思えます。
さんこう様は、
例を挙げて(この場合の例はddd.xlsx)
cccddd.xlsx
としているのでしょう?。
cccとdddがつながっている時点で、cccフォルダ内ではなく、
bbbフォルダからcccddd.xlsxを探そうとしているのでは?
とヒントを差し上げているのだと思います。
だって名前が「さんこう」なのですから…
過去ログを見ても、さんこう様は、参考にしてね。のような
返信を良くしていますよ。
回答をつける人を非難するのは良くないと思います。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-03 12:09:38 )