【Excel】ファイル名に半角角括弧を含むブックからシートをコピーするとコピー先ブックが破損する

ファイル名に半角角括弧([ ])を含むワークブックで不具合(仕様?)にはまったので覚書します。

Excelにおいて半角角括弧記号は特殊文字とされており、ワークブックファイル名に使用することができません。
f:id:ktts:20180824004959p:plain


一方、Windowsファイルシステム上は使用可能であるので、エクスプローラーでリネームすれば半角角括弧を含むブックを作成できてしまいます。
f:id:ktts:20180824005021p:plain

上記のように強制的に作成したブックでは、エクセル内部ではブック名(Workbook.Nameプロパティ)の角括弧が括弧で置換されているようでした。
f:id:ktts:20180824005830p:plain

この仕様を考慮しないでファイル名=ブック名としてマクロを組んでしまうと、
Workbookオブジェクトの補足等でエラーが発生する可能性があります。

また、この仕様は(シートの内容にも依存するようですが、)シートを別ブックにコピーするときに、コピー先ブックを破損させることもあるようです。
再現はできなかったのですが、下記の状況でした。

発生環境:Windows10 Excel2016

  1. 半角角括弧を含むブックのシートを別のブックにコピーする
  2. コピー先ブックを保存して閉じる
  3. コピー先ブックを開くとブックの修復ダイアログが表示される。(読み取れなかった内容を修復または削除することにより、ファイルを開くことができました)

確認した解決方法は下記の2点でした

  • コピー元ブックファイル名の半角角括弧を削除する
  • コピー元シートのグラフを削除する