- ベストアンサー
エラーがたまにでます
下記マクロはネットで見つけたものですが、綺麗に動くのですがたまにエラーがでます パスのエラー?で止まるのですが 何か治したいほうが良いところがもしわかれば教えていただきたいです Sub updFileName() 'フォルダパスを宣言 Dim path As String Dim j As Integer 'A2セルの文字をパスに設定 path = Cells(2, 1) & "\" j = 1 'B4セルからファイル名を更新 Do Until Cells(j + 3, 1) = "" 'A列のファイル名をB列のファイル名に更新 Name path & Cells(j + 3, 1) As path & Cells(j + 3, 2) j = j + 1 Loop End Sub ネットは、これです↓ https://skainoblog.com/renamefile/ なんか、変更が途中で止まる、、ことがあるんです。そしたらパスのエラー?とでてました
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
たまにという事なので Fso.MoveFile mPath & Cells(i, "A").Value, mPath & Cells(i, "B").Value のあとに Cells(i, "A").Interior.Color = vbGreen として成功したらセルをグリーンに塗るようにしておくとエラーになったときにグリーンの下のセルがエラーだと分かりますからそこを見て何かおかしくないか確認するようにしたらどうでしょう。
その他の回答 (3)
- kkkkkm
- ベストアンサー率66% (1719/2589)
「変更後のファイル名」としましたが元ファイル名にも入力ミスか何かで使えない文字が入力されていないかも確認してみてください。
補足
んーファイル名につけれないものは付けてなくて フォルダ内のファイル名をひっぱってきて、変更後のファイル名をエクセルに打ち込んでか、らの、ファイル名変更!なので なぜエラーが出るのか、、、 悲しかったです 色々付け足してるし 上手く動いているのに時たま出るエラーが そしてエラー後空白にすると上手くいかないし、もちろんのことながら
- kkkkkm
- ベストアンサー率66% (1719/2589)
あと状況によっては 変更後のファイル名に以下の文字が含まれていると「パスが見つかりません」というエラーになりますので確認してみてください。 Windowsでファイルやフォルダーに「使わない方がいい」文字 https://ascii.jp/elem/000/004/030/4030753/
- kkkkkm
- ベストアンサー率66% (1719/2589)
以前にファイル名によってはNameで変更しようとするとエラーになることがあるというお話がありました。 https://okwave.jp/qa/q10229987.html それに該当するかどうかは分かりませんが、とりあえず以下のようにして試してみてください。 元のコードを利用するとしたら Sub updFileName() 'フォルダパスを宣言 Dim path As String Dim j As Long Dim Fso As Object Set Fso = CreateObject("Scripting.FileSystemObject") 'A2セルの文字をパスに設定 path = Cells(2, 1) & "\" j = 1 'B4セルからファイル名を更新 Do Until Cells(j + 3, 1) = "" 'A列のファイル名をB列のファイル名に更新 Fso.MoveFile path & Cells(j + 3, 1), path & Cells(j + 3, 2) j = j + 1 Loop Set Fso = Nothing End Sub 全く新しく考えたら(A列のデータは元のファイル名だけで途中空白があったとしても最後のデータまで元ファイル名として) Sub Test() Dim mPath As String Dim LastRow As Long, i As Long Dim Fso As Object Set Fso = CreateObject("Scripting.FileSystemObject") mPath = Cells(2, "A").Value & "\" LastRow = Cells(Rows.Count, "A").End(xlUp).Row For i = 4 To LastRow If Cells(i, "A").Value <> "" And Cells(i, "B").Value <> "" Then Fso.MoveFile mPath & Cells(i, "A").Value, mPath & Cells(i, "B").Value End If Next Set Fso = Nothing End Sub
補足
めっちゃいいですね!! このマクロだと、ファイル名変えなくていいのにな、とか、エラーでたから途中まではファイル名変わったのにな、と言う時、途中空白にできなかったんです! 考えてくださったのだと、変更したくないファイルが出てきても、応用ききますね!空白がokだと ありがとぅございます 感謝しかないです 早速試してみます!!m(_ _)mありがたき
お礼