![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
タイトルの件、下記のマクロをご覧ください。
ファイル移動のマクロです。
同マクロを実行した際に、下記のエラーが表示されます。
ただし、エラーが出るだけで
実際にマクロは実行されます。
フォルダの移動元と移動先に同じ名前のファイルは
ありません。なのに、同エラーが発生します。
特に、同じファイルがないからマクロは実行される
のだと思います。
windows10は同じフォルダに同じ名前のファイルを
入れようとすれば、上書きするか否かのメッセージも
表示されるかと思います。
エラー回避の仕方をご存じのかた、教えて下さい。
【エラーメッセージ】
実行時エラー58
既に同名のファイルが存在しています
【マクロ内容】
佐藤作成フォルダの中にあるファイルを
バックアップフォルダへ移動する
ファイルの種類や個数に制限はなし
【コード】
Sub い()
Dim fso As New FileSystemObject
Dim cFile As String
Dim dFile As String
cFile = "C:\Users\2020\Desktop\マクロ\佐藤作成\*"
dFile = "C:\Users\2020\Desktop\マクロ\バックアップ\"
fso.MoveFile cFile, dFile
End Sub
No.5ベストアンサー
- 回答日時:
ダイアログTitleをよく確認してください
Sub い()
Dim wsh As Object
Dim ds As String
Dim cFile As String
Dim dFile As String
Set wsh = CreateObject("WScript.Shell")
ds = wsh.SpecialFolders("Desktop")
Dim strMsg As String
Dim i As Integer
Dim folderPath(0 To 1) As Variant
strMsg = "< 移動元 > フォルダーを選択してください"
For i = 0 To 1
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ds ' & "\マクロ"
.Title = strMsg
If .Show Then
folderPath(i) = .SelectedItems(1)
Else
MsgBox "もう一度初めから行って下さい", , "キャンセルしました": Exit Sub
End If
End With
strMsg = "< 移動先 > フォルダーを選択してください"
Next
Set wsh = Nothing
strMsg = ""
'folderPath(0)移動元パス 'folderPath(1)移動先パス
Dim fso As New FileSystemObject
Dim f As File
Dim okMsg As String
With fso
For Each f In .getfolder(folderPath(0)).Files
If Not .FileExists(.BuildPath(folderPath(1), f.Name)) Then
okMsg = okMsg & f.Name & vbCrLf
.MoveFile f.Path, folderPath(1) & "\"
Else
strMsg = strMsg & f.Name & vbCrLf
End If
Next f
End With
If strMsg <> "" Then
MsgBox "移動NG同名ファイルリスト" & vbCrLf & strMsg & vbCrLf _
& vbCrLf & "移動実行済みファイルリスト" & vbCrLf & okMsg, , "<確認> 処理内容"
Else
If okMsg <> "" Then
MsgBox "処理ファイルリスト" & vbCrLf & okMsg, , "<確認> 処理内容"
Else
MsgBox "移動元フォルダにファイルはありません", , "<確認> 処理内容"
End If
End If
End Sub
No.4
- 回答日時:
こんにちは
ご質問に掲示されたコードは
\佐藤作成フォルダ内のすべてのファイルを\バックアップ内に移動するものです
(内部的には1つ1つなのでしょうが、処理としてはすべてに対して行うものです)
●ファイルは1つづつ、移動をしています。(ニュアンスが違うようかな)
●同名ファイルは間違いなくありません。
【エラーメッセージ】58
基本エラーメッセージをあてにすると隠しフィルとか・・無いでしょうか?
●移動先のフォルダに、既にあるファイルの数が少ない・・
●移動先のフォルダに、既にあるファイルの数が多い・・・
ローカルで事象を再現できないので・・何とも
色々踏まえて 検証用に作り直してみました。
移動は文字通り1つ1つです
(文字数制限の為)
#5に挙げるプロシージャを試してみてください
No.3
- 回答日時:
#2 追記します
>ただし、エラーが出るだけで実際にマクロは実行されます。
>特に、同じファイルがないからマクロは実行されるのだと思います。
多分これは勘違いです
同名ファイルが出て来るまでの処理は実行されてキャンセルされない為です
(処理途中までのファイルは移動される)
回答ありがとうございます。
まだ、エラーはあるのですが
分かった事があります
引続き同エラーが表示されない
ヒントがわかれば、教えて下さい
●ファイルは1つづつ、移動をしています。
●同名ファイルは間違いなくありません。
●移動先のフォルダに、既にあるファイルの数が
少ない⇒約3個以内だとエラーは表示されない
●移動先のフォルダに、既にあるファイルの数が
多い⇒約100個以上だとエラーは、表示される
【エラーメッセージ】
実行時エラー58
既に同名のファイルが存在しています
No.2
- 回答日時:
こんにちは
佐藤作成フォルダ内のすべてのファイルを一気に移動させるのですね
>フォルダの移動元と移動先に同じ名前のファイルはありません。なのに、同エラーが発生します
変ですね・・1つも同じファイルは存在しません?・・・
移動先フォルダを新規フォルダにして試してみてください
>windows10は同じフォルダに同じ名前のファイルを入れようとすれば、上書きするか否かのメッセージも表示される
残念ながら、仕様によるエラーなので表示されないです
(#1様が示されているリファレンスをご覧ください)
回避方法
ファイルの存在、重複の確認プロセスが必要になりますので
一気に移動せずに1ファイルづつ移動するやり方で
同名ファイルをどうするかで変わります
移動しない場合は、対象から外す
(On Error Resume Next や差分リストなどで実行)
移動する場合、リネームで移動
自身で書かれています
https://oshiete.goo.ne.jp/qa/13119613.html を用いて出来ると思います
人に命令するより機械に命令する方がある意味簡単かもしれませんが
人のように忖度などはありません
従って、仕様を理解して要件をしっかり伝える必要がありますね
(私にはなかなかできませんが)
振り出しに戻る感じでしょうか・・
特定条件でしか実行できないメソッドをどう使うかですね
必要なコードを削除してはいけないと思いますよ
回答ありがとうございます。
まだ、エラーはあるのですが
分かった事があります
引続き同エラーが表示されない
ヒントがわかれば、教えて下さい
●ファイルは1つづつ、移動をしています。
●同名ファイルは間違いなくありません。
●移動先のフォルダに、既にあるファイルの数が
少ない⇒約3個以内だとエラーは表示されない
●移動先のフォルダに、既にあるファイルの数が
多い⇒約100個以上だとエラーは、表示される
【エラーメッセージ】
実行時エラー58
既に同名のファイルが存在しています
No.1
- 回答日時:
こんにちは
原因はMoveFileの第二引数がファイルスペックになっていないからでしょう。
仕様に「エラーになる」とあります。
https://docs.microsoft.com/ja-jp/office/vba/lang …
回答ありがとうございます。
第2引数とは、構文のdestinationの
事ですか?
destinationがファイルスペックになっていない
とはどのような意味でしょうか。
教えて下さい
【構文】
object.MoveFile source, destination
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Excel(エクセル) 【マクロ】ファイルを古い順に、1個ずつ移動する 1 2022/09/06 20:30
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) Wordマクロで指定したフォルダ名に保存する方法について 8 2022/12/13 11:35
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBAにおいて、ファイルの移動にMoveFileを使っていますが、
Visual Basic(VBA)
-
Excelで「同じ名前のファイルが既に開いています」
Excel(エクセル)
-
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
6
VBAでシートコピー後、シート名が重複している時の処理
Access(アクセス)
-
7
VBAでchromeを動かしたいのですが、エラー出ます。
その他(パソコン・スマホ・電化製品)
-
8
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
9
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
10
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
11
エクセルVBA セルに表示されたテキストと同じ名前のファイルを開きたい
Excel(エクセル)
-
12
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
13
Worksheets メソッドは失敗しました。のエラー処理のやり方
Visual Basic(VBA)
-
14
エクセルでエラーが出て困っています。
Excel(エクセル)
-
15
EXCELをバッチコマンドで起動したとき、引数を渡せますか
その他(プログラミング・Web制作)
-
16
VBAのfor...next構文で i = A to Z としたい。
PowerPoint(パワーポイント)
-
17
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
18
エクセル:マクロ:保存時に連番をつける
Visual Basic(VBA)
-
19
エクセルVBAで開いているファイルをコピーする方法
Visual Basic(VBA)
-
20
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL マクロ クリップボードク...
-
VBA マクロ実行時エラー’1004Ra...
-
エクセル終了時の保存確認メッ...
-
昨日まで動いていたエクセルの...
-
別のパソコンでエクセルのマク...
-
EXCELで日付を自動でファイル名...
-
エクセルでマクロでテキストデ...
-
エクセルマクロにてパワーポイ...
-
Excelが勝手にシート移動してし...
-
アクセスからエクセルファイル...
-
アクセスでファイルを開いたと...
-
外部データを取り込むマクロ
-
エクセル2013vbaで、見えない名...
-
Excel2010 PERSONAL.xlsbの挙動...
-
コピーしたファイルのマクロを...
-
VBAを一度起動するとずっと出て...
-
EXCEL:マクロの登録ができない...
-
excelファイルに使われているVB...
-
添付ファイルのみを自動印刷し...
-
エクセルファイルを自身のファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
VBAを一度起動するとずっと出て...
-
【マクロ】その時、その時で変...
-
VBA マクロ実行時エラー’1004Ra...
-
昨日まで動いていたエクセルの...
-
マクロの有効化するダイヤログ...
-
別のパソコンでエクセルのマク...
-
コピーしたファイルのマクロを...
-
EXCEL マクロ クリップボードク...
-
excelファイルに使われているVB...
-
エクセルファイルを自身のファ...
-
Excelマクロ ファイル名が変わ...
-
Microsoft Excelのファイルのエ...
-
Excelが勝手にシート移動してし...
-
excelが別プロセスで起動してし...
-
エクセルマクロ実行中に別ファ...
-
エクセル2013vbaで、見えない名...
-
マクロでマクロを削除する
-
アクセスでファイルを開いたと...
-
Excel2010 PERSONAL.xlsbの挙動...
おすすめ情報