本来のファイル名は、"〇〇〇[a].xlsx" であるのに
それを開いたWorkbookオブジェクトのNameプロパティを確認すると、
"〇〇〇(a).xlsx" といった具体。
よくよく調べると、ブック名で大括弧を使用されるとExcel的に都合が悪いもよう。
SaveAsで保存する時のファイル名にも似たような問題があるようだ。
■参考
【Excel】ファイル名に半角角括弧を含むブックからシートをコピーするとコピー先ブックが破損する - ktts’s blog
https://ktts.hatenablog.com/entry/2018/08/25/004217
ファイル名の大カッコ(角カッコ)には気を付けろ! -
http://chaichan.lolipop.jp/vbtips/VBMemo2010-03-31.htm
ということで、問題があるのはわかったけど、処理的に大括弧のあるファイル名のファイルを開いて、別名(ファイル名には同じく大括弧使う)で保存しなおす必要があった。
そんなわけで以下のようにした。
・ファイル名には、Workbook.FullName から取得したものを使用する。
…FullNameだと大括弧のままで取得できる。
・Workbook.SaveAs の代わりには、
対象のファイルを、一旦別の仮名で「名前をつけて保存」(本来のSaveAs) → ブックを閉じる → 新しいファイル名に変更する → 変更後のファイル名で開く といった処理を作って対応。
(マクロブックと、大括弧つきファイル名ブックは別なので、これでいいけど同じファイルだったら、ダメですね。)
そもそも大括弧をファイル名に使わなきゃいいんだな。今回は他のシステムの都合上、どうしようもないのだが、個人的に今後気をつけようと思った。
皆さんもお気をつけください。
0 件のコメント:
コメントを投稿