【Excel】ファイル名に半角角括弧を含むブックからシートをコピーするとコピー先ブックが破損する
ファイル名に半角角括弧([ ])を含むワークブックで不具合(仕様?)にはまったので覚書します。
Excelにおいて半角角括弧記号は特殊文字とされており、ワークブックファイル名に使用することができません。
一方、Windowsファイルシステム上は使用可能であるので、エクスプローラーでリネームすれば半角角括弧を含むブックを作成できてしまいます。
上記のように強制的に作成したブックでは、エクセル内部ではブック名(Workbook.Nameプロパティ)の角括弧が括弧で置換されているようでした。
この仕様を考慮しないでファイル名=ブック名としてマクロを組んでしまうと、
Workbookオブジェクトの補足等でエラーが発生する可能性があります。
また、この仕様は(シートの内容にも依存するようですが、)シートを別ブックにコピーするときに、コピー先ブックを破損させることもあるようです。
再現はできなかったのですが、下記の状況でした。
発生環境:Windows10 Excel2016
- 半角角括弧を含むブックのシートを別のブックにコピーする
- コピー先ブックを保存して閉じる
- コピー先ブックを開くとブックの修復ダイアログが表示される。(読み取れなかった内容を修復または削除することにより、ファイルを開くことができました)
確認した解決方法は下記の2点でした
- コピー元ブックファイル名の半角角括弧を削除する
- コピー元シートのグラフを削除する