Cドライブに、新規 Microsoft Office Excel ワークシート.xlsxと言うファイルを作成しました。
そのうえで、アクセスから
――――――――――――――――――――――――――――――――
Sub できない1()
Dim xlsWB As Object
Set xlsWB = CreateObject("C:\新規 Microsoft Office Excel ワークシート.xlsx")
xlsWB.Application.Run xlsWB.Name
Set xlsWB = Nothing
End Sub
――――――――――――――――――――――――――――――――
をすると
------------------------
実行時エラー '1004'
マクロ'新規 Microsoft Office Excel ワークシート.xlsxを実行できません。
このブックでマクロが使用できないか、またはすべてのマクロが無効になっている可能性があります。
------------------------
となります。
なので別の方法で開こうと、
――――――――――――――――――――――――――――――――
Sub できない2()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Application
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\新規 Microsoft Office Excel ワークシート.xlsx")
xlApp.Visible = True
Set xlApp = Nothing
Set xlBook = Nothing
End Sub
――――――――――――――――――――――――――――――――
にしたのですが、
実行時エラー’13’型が一致しません
になります。
何がダメなのでしょう?
マクロ付きファイルにしないとダメですか?
もしくはファイル名に空白があるからエラーになるのでしょうか?
そして、なぜ二つのコードのエラー内容がちがうのでしょう?
それと、なぜか上記マクロを実行していると
~$新規 Microsoft Office Excel ワークシート.xlsx
と言うファイルが出来上がります。(添付画像参照)
でもファイルは開いていません。
この状態で、新規 Microsoft Office Excel ワークシート.xlsx
をダブルクリックして開こうとすると、一瞬だけ画面に表れてすぐ消えます。
オフィスのバージョンは2007です。
ご回答よろしくお願いします。
1は勘違いをされていると思うのですが、参考コードがどこかにあったのでしょうか?
2は
Dim xlBook As Excel.Application → Dim xlBook As Excel.Workbook
ですね。名前はxlBookだけれど、実態はエクセルなので、型違いとなったものです。
~$新規 Microsoft Office Excel ワークシート.xlsx
については試しておりませんので、分かりません。
お礼
1については間違いなのですね。 使わないようにします。 2については Excel.ApplicationではなくExcel.Workbook にするべきなのですね。 元々のサンプルがObject型だったので自分で変えてみたら間違っていたようです。 試してみたらできました。 ありがとうございました。