• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル名の一括置換がIF文のときだけエラーになる)

ファイル名一括置換のエラー解決方法

このQ&Aのポイント
  • VBA初心者がフォームから受け取ったディレクトリ内のファイル名を一括置換する際に、IF文を使用するとエラーが発生する問題について解決方法を紹介します。
  • フォームから受け取ったパスを使用せずに、ファイル名の末尾を「_ja.txt」から「_de.txt」に置換するだけなら問題なく動作します。
  • エラーメッセージ「実行時エラー'53' ファイルがありません。」の原因は、IF文の条件式が正しくないため、ファイルが存在しない場合にエラーが発生しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

Do~Loopの範囲が間違い myFilename1 = Dir(myPath & "*_ja.txt") Do While myFilename1 <> "" '★ここでループ判定     If myPath = "D:\export\de\" Then     = = = = 以下略 = = =     Name myRename1 As myRename2     myFilename1 = Dir '★次のファイルを受け取る Loop 掲題のプログラムではRenameを永久に繰り返すが、 最初のRenameで名前が変わってしまったので、2回目に 指定された旧ファイル名が見つけられないということ。

Kazu_creator
質問者

お礼

ありがとうございます!解決しました。 myFilename2のところで行っているReplaceの処理は、Do While のループの中で1回ずつやらいといけなかったのですね。それでIF文を挿入したとたんに動かなくなった理由が判りました。 それに、2回目の以降の検索をするための myFilename1 = Dir() が抜けていたのも致命的でした。消したつもりはなかったのに、いつの間にか削除してました。 はやく自分で気付けるようになりたいです。

その他の回答 (1)

  • WDY
  • ベストアンサー率27% (134/487)
回答No.1

myPathをメッセージBOXで表示してみてください。 ループした時にクリアされていないからつながったファイルパスになると思います。 一回目 D:\export\de\・・・・ 二回目 D:\export\de\・・・・D:\export\de\・・・・

関連するQ&A