🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

2回答

4351閲覧

VBA USBへファイルをコピーしたい CopyFile のファイルが見つかりませんエラーの修正

harehareharenoh

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

2クリップ

投稿2021/01/28 09:03

前提・実現したいこと

VBAを使用してUSBに特定のファイルをコピーしたい

ここに質問の内容を詳しく書いてください。
VBAを使用して、USBへ特定のファイルをコピーできるものを作成しようと思います。
実装自体はできている任氏なのですが、ファイルが見つかりませんのエラーが発生します。

発生している問題・エラーメッセージ

実行時エラー 53 ファイルが見つかりません。

該当のソースコード

VBA

1Sub mkCopyFolder() 2 Dim myFSO As Object 3 Dim FrFolder As Object 4 Dim Path1 As String '作成予定フォルダの上位パス1 5 Dim FileName As String 6 Dim Dr As Object, Dl As String, Dv As String 7 Dim Usename As String 8 Dim RealFolder As String 9 Dim UseFolder As String 10 Dim ret As Long 11 12 Path1 = Range("C3").Value 13 Usbname = Range("B3").Value + "" 14 FileName = Range("B6").Value 15 RealFolder = Path1 & "¥" & FileName 16 17 Set myFSO = CreateObject("Scripting.FilesystemObject") 18 Dl = "" 19 For Each Dr In myFSO.Drives 20 Dv = "" 21 On Error Resume Next 22 Dv = Dr.VolumeName 23 On Error GoTo 0 24 25 If Dv <> "" Then 26 If Dr.VolumeName = Usbname Then 27 Dl = Dr.DriveLetter 28 Exit For 29 End If 30 End If 31 Next Dr 32 33 If Dl <> "" Then 34 UsbFolder = Dl & ":¥" 35 If Dir(UsbFolder) <> "" Then 36 ret = MsgBox("同じ名前のファイルがあります。" & vbCrLf & _ 37 "上書きしていいよね??", vbYesNo) 38 If ret = vbNo Then Exit Sub 39 End If 40 With New FileSystemObject 41.CopyFile RealFolder, UsbFolder, True ←この部分でエラーが発生 42 End With 43 MsgBox "USBメモリーへ" & FileName & "コピーしました" 44 Else 45 MsgBox "USBメモリがセットされていません" 46 End If 47 Set myFSO = Nothing 48 Set FrFolder = Nothing 49 Set Dr = Nothing 50End Sub 51

試したこと

実際に存在することは画面上で確認していて、
デバックでもPASS表示に問題ないことを確認しています。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。
Excel2016を使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/01/28 09:35

変数 RealFolder には、コピー元ファイルのフルパスが正しく格納されているという認識で間違いないでしょうか。
harehareharenoh

2021/01/28 16:35

その認識です。 デスクトップ上のファイルでファイルパスはこの用意なっています。 Path1 C:\Users\ユーザー名\Desktop\USBへここから保存 FileName USBへ保存.xlsx です
guest

回答2

0

円マークが全角なので半角にしてください。
※表示は半角バックスラッシュになりますが半角円マークと同じ扱いです。

vba

1'RealFolder = Path1 & "¥" & FileName 2RealFolder = Path1 & "\" & FileName 3 4'UsbFolder = Dl & ":¥" 5UsbFolder = Dl & ":\" 6

実際は半角であればそれぞれの変数に
どのような値が入っているか教えてください。
Path1
Usbname
FileName
RealFolder
UsbFolder

変数の宣言がされていないものがあります。
標準モジュールの先頭にOption Explicitを記載しましょう。

投稿2021/02/01 00:40

radames1000

総合スコア1925

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まずは、UsbFolderになにが入ってるか見てみればどうでしょう

投稿2021/01/28 09:07

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

harehareharenoh

2021/01/28 14:12

USBは今回検証用なので空っぽにしてます。 何も入っていません!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問