こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

回答受付中の質問

VBAで実行時エラー1004が出てしまう

実行時エラー1004で「申し訳ございません。が見つかりません。名前が変更されたか、移動や削除がおこなわれた可能性があります。」と表示されてしまう。


あるフォルダ内にある複数のファイルから、作成日・更新日が最新のファイルのシートを作業中のブックにコピーするVBAなのですが上記のエラーが出てしまい原因が分かりません。

VBA初心者なので基本的なことかもしれませんがアドバイスよろしくお願い致します。


Sub コピー()

Dim FileTime As Date
Dim MaxTime As Date
Dim FileName As String
Dim MaxFileName As String

With CreateObject("WScript.Shell") 'カレントフォルダを指定

.CurrentDirectory = "C:\Users\○○\Desktop\○○\○○\○○\"

End With

FileName = Dir("*.xlsx") 'ワイルドカードで拡張子「xlsx」ファイルを取得

Do While FileName <> "" 'ファイルを取得出来なくなるまでループ

FileTime = FileDateTime(FileName) '取得したファイルの日時を取得

If FileTime > MaxTime Then '時間を比較

MaxTime = FileTime '日付が大きい場合は格納
MaxFileName = FileName '日付が大きい場合はファイル名を格納

End If

FileName = Dir()

Loop

ShCount = ThisWorkbook.Worksheets.Count '実行したファイルのシート数を取得

Workbooks.Open MaxFileName ←ここでエラーが出る

Worksheets(2).Copy after:=ThisWorkbook.Worksheets(ShCount) 'シートの2つ目を指定して末尾に追加

Workbooks(FileName).Close savechanges:=False '取得したファイルを閉じる

End Sub

投稿日時 - 2020-08-02 19:28:55

QNo.9780549

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

Workbooks.Open MaxFileName ←ここでエラーが出る

MaxFileNameをルートからのフルパスにする必要がありますね。

C:\abc\efg\hijk.xlsx

MaxFileNameにはhijk.xlsxしかはいっていません。

投稿日時 - 2020-08-02 19:49:55