WorkbooksコレクションのAddメソッドに自分自身のフルパスを渡すとExcelが落ちる

Excelが落ちる

WorkbooksコレクションのAddメソッド

akashi-keirin.hatenablog.com

に、ExcelVBAer(id:x1xy2xyz3) さんから、次のようなコメントをいただいた。

参考までに、WorkBooks.Add([originalFileFullName]) という方法も知っておくといいかもね~

Addメソッドの引数に、元のファイルのフルパスを指定して実行するという意味だと思うのだけれど、どんな結果になるのか想像もつかなかった。

で、やってみた

とりあえず、次のようなコードを書いてみた。

リスト1
Public Sub testAddMyself()
  Dim originalWorkbook As Workbook
  Set originalWorkbook = ThisWorkbook
  Dim newWorkbook As Workbook
  Set newWorkbook = Workbooks.Add(originalWorkbook.FullName)
End Sub

んで、実行してみた。

f:id:akashi_keirin:20170827173532j:plain

……。

元のブックは「親ブック.xlsm」というファイル名なのだけれど、新しくできたブックは「親ブック1」という名前になっているみたい。

全く同じファイルパスなんだから、新しい方に「1」を付けたんだろうけど、次の瞬間にExcelが落ちる。

 

これは何回やっても同じだった。

まあ、そもそも ExcelVBAer(id:x1xy2xyz3) さんのコメントを理解できていないということなのでしょう。

おわりに

こんなしょうもない記事が通算100記事目だなんて……。

@akashi_keirin on Twitter