Excel VBA 質問スレッド №1984 (解決済)

fso.CopyFileがうまく実行されない

投稿者 : Mi     投稿日時 : 2024/08/04(Sun) 13:13:45     OS : Windows 10     EXCEL : Office 365
下記コードを実行しても、コピー先フォルダにファイルがコピペされません。
原因が分からないため、わかる方がいましたらご教示お願いいたします。


Sub ファイルのコピペ()
    
    Dim fso As Object
    Dim ParentFolder As String
    Dim nextFolder As String
    Dim ret As Long
    
    '最終行の変数を宣言
    Dim n
  
    n = Worksheets("sheet1").Cells(Rows.Count, 3).End(xlUp).Row

    For i = 6 To n
    
    ParentFolder = Worksheets("sheet1").Cells(i, 4)
    
    nextFolder = Worksheets("sheet1").Cells(i, 5)
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'ファイルの存在確認
    If Dir(ParentFolder) <> "" Then
    
    'コピー先フォルダの存在確認
    If Dir(nextFolder) <> "" Then
           
    'ファイルをコピー
    fso.CopyFile ParentFolder, nextFolder

    End If
    End If
    Next i
    
    '後片付け
    Set fso = Nothing
    
End Sub

(↓パスの一部)

コピー元 パス:C:\Users\bieih\OneDrive\ドキュメント\Aフォルダ\Bフォルダ\Cフォルダ\*.xls*
コピー先 パス:C:\Users\bieih\OneDrive\ドキュメント\Aフォルダ - コピー (2)\Bフォルダ\Cフォルダ

スポンサーリンク
[返信 1] Re : fso.CopyFileがうまく実行されない
投稿者 : ピロリ     投稿日時 : 2024/08/04(Sun) 13:59:09
コピー先の「フォルダの存在」を確認しようとしている訳ですから、
If Dir(nextFolder) <> "" Then        のところを、
If Dir(nextFolder, vbDirectory) <> "" Then にしてみたら どうなりますか?

[返信 2] Re : fso.CopyFileがうまく実行されない
投稿者 : Mi     投稿日時 : 2024/08/04(Sun) 18:28:38
ピロリ様

回答いただきありがとうございます。

記載いただいたとおりに修正したら出来ました!

vbDirectoryについてもまた、勉強したいと思います。

色々不備のあるご質問のところ、教えていただきありがとうございました。m(__)m!

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-06 01:21:43 )
タイトルとURLをコピーしました