現在下記コードにて、testPathに設定されたパスについて
「☆」を「★」に変換する処理を行っていますが、
稀にデバッグエラーが起こります。
(今エラー内容について確認できず申し訳ありません)
Name testPath As Replace(testPath, "☆", "★")
なぜエラーが起こるのかというと、どうもパス内の文字のどれかが原因していたようなのですが
現在、テキストを修正してしまい、どんな文字が使われていたのか定かではありません。。
ぼやっとした質問で申し訳ないのですが、そのような場合、エラーを避ける方法はありますでしょうか。
Name ステートメント (VBA) | Microsoft Docs
上記によると、エラーになる原因としては、下記の2点が考えられます。
それ以外のエラーについてはちょっと分かりません。
もしかして:
起こりうること全部チェックするなら
たとえば
testPath
が「C:\☆★☆注目☆★☆\☆hoge.dat
」だと変換後のパスは「C:\★★★注目★★★\★hoge.dat
」となります。大抵そんなフォルダないよって感じでエラーになります。もしかしませんか?あと、当たり前だけど
testPath
に"☆"
が含まれていないとName testPath As testPath
になるんでエラーになります最初のコードも2番目のコードもやっていること自体を変えている(ファイル名のみ
Replace
の対象とする)ので、フォルダ名も変換されるのが正しい処理なら最初のコードはもしかしません。2番目のコードにはフォルダの存在チェック処理を追加する必要があります予期せぬエラーについてはhatenaさん指摘の元ファイルが開いている場合の他、アクセス権の問題(書き込み許可がない)とかもあり得ます
システムでどこまで保証されているかによって必要なエラー対策は変わります。やりたいこととやっていることをもう一度見直して必要な処理を見極めてください
詳しく解析していただき、ありがとうございます。
元のファイルを開いている等については考えていませんでした。
次にエラーが起きたとき、改めて確認したいと思います。
エラー対応のコードも組み込みたいと思います。ありがとうございます!