ray88’s diary

お仕事で困ったとき用の自分用の覚書

Excelを遅延バインディングした時にエラーになる件について

■開発していると参照設定したくても、納品先のお客様の使用環境が

 どのバージョンを使用しているか不明のため、コード規約で参照設定が

 禁止されているケースが多いです。なので、遅延バインディングします。

 AccessからExcelを遅延バインディングしてWorkbookを操作する際に

 以下のコードでエラーとなりました。

 Dim wb As Workbook のところで

コンパイルエラー:ユーザー定義型は定義されていません」とエラーメッセージが

でます。

'---------------------------------------------------------------------
Sub test1()
Dim objExe As Object
Set objExe = CreateObject("Excel.Application")
objExe.Visible = True
Dim wb As Object
Set wb = objExe.workbooks.Open("C:\売上金額フォーマット.xlsx")
End Sub
'---------------------------------------------------------------------

 

f:id:ray88:20200109211114p:plain

■解決方法

Dim wb As Workbook  → Dim wb As Object

変数をObject型にすることで解決しました。