Closeメソッドの変なエラー


Windowsの設定で「登録されている種類のファイルも拡張子を表示する」的なオプションがオンになっているとき、WorkbooksコレクションのCloseメソッドでブックを閉じる場合は、拡張子まで指定しないとエラーになります。

たとえば「Book1.xlsx」を開いているとき

Sub Sample1()
    Workbooks("Book1.xlsx").Close
End Sub

は正常に「Book1.xlsx」を閉じますが

Sub Sample1()
    Workbooks("Book1").Close
End Sub

だとエラーになります。

まぁ、当たり前の結果ですけど、しかし、この閉じようとしたブックにグラフが挿入されていると、Excel 2007では次のようなエラーになります。

初めて見るエラーです。Closeメソッドの動作確認をしていて気づきました。Excel 2010でも直っていません。Windows 7だけでなく、Windows XPでも発生しました。珍しいケースですけど、もしエラーをErr.Numberで判定しているときには、注意が必要ですね。

【2012/03/13 追記】

現在は、Excel 2007/2010 ともに直っているようですね。