HOME > 即効テクニック > Access VBA > ファイル操作・他アプリケーションとの連携 > Excelを起動する(オートメーション)

Excelを起動する(オートメーション)|Access VBA

ファイル操作・他アプリケーションとの連携

Excelを起動する(オートメーション)

(Access 2000/2002/2003/2007/2010)

Excelを起動して、新規ブックを開きます。

●サンプル1●

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です。)

参照設定をすると、使用可能な固有オブジェクトが増え、コーディングの際にインテリセンス機能が使えます。

●サンプル2●

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のように書くこともできます。

●サンプル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関数では、アプリケーションの起動のみが可能なのに対し、オートメーションの場合は、起動したアプリケーションのオブジェクトを操作することが可能となります。