Excelを起動する(オートメーション)|Access VBA |
Excelを起動して、新規ブックを開きます。
Sub Sample1()
Dim c As Variant
Dim myExcel As Object
Set myExcel = CreateObject("Excel.Application")
myExcel.Visible = True
myExcel.Workbooks.Add
Set myExcel = Nothing
End Sub
このように、VBAで他のアプリケーションのオブジェクトを操作することを「オートメーション」といいます。
サンプル2のように記述しても、同じ結果が得られます。
サンプル2を動作させるには、VBEのメニューバーから事前に[ツール(T)]メニュー→[参照設定(R)]で「Microsoft Excel XX.X Object Library」を組み込む必要があります。(XX.XはExcelのバージョンによって異なります。Excel 2010の場合は14.0です。)
参照設定をすると、使用可能な固有オブジェクトが増え、コーディングの際にインテリセンス機能が使えます。
Sub Sample2()
Dim myExcel As Excel.Application
Set myExcel = New Excel.Application
myExcel.Visible = True
'以下、ExcelVBAのコードを使用して、Excelの機能を使うことができる
'例
myExcel.Workbooks.Add
myExcel.Range("A1").Value = "モーグ"
myExcel.Range("A1").Copy Destination:=myExcel.Range("B1")
Set myExcel = Nothing
End Sub
また、参照設定をしておくとサンプル2をサンプル3のように書くこともできます。
Sub Sample3()
With New Excel.Application
.Visible = True
.Workbooks.Add
.Range("A1").Value = "モーグ"
.Range("A1").Copy Destination:=.Range("B1")
End With
End Sub
Shell関数では、アプリケーションの起動のみが可能なのに対し、オートメーションの場合は、起動したアプリケーションのオブジェクトを操作することが可能となります。