2024/02/10(土)06:20
ExcelVBAからAccessVBAを呼び出す方法
Excel VBA から Access VBA を呼び出す方法は、通常、Access データベースを開いて、その中の関数やサブルーチンを実行することで行われます。以下に、Excel VBA から Access データベースを開いて関数を呼び出す方法を示します。
まず、Microsoft Access ライブラリを参照に追加する必要があります。これにより、Access データベースを Excel VBA から操作するための機能が利用できるようになります。
Excel を開きます。
[Alt] + [F11] キーを押して Visual Basic for Applications (VBA) エディタを開きます。
[ツール] メニューから [参照設定] を選択します。
リストから "Microsoft Access xx.x Object Library" を選択し、[OK] をクリックして追加します。
次に、以下のようなコードを Excel VBA プロジェクトに追加します。
vba
Copy code
Sub CallAccessFunction()
Dim appAccess As Object ' Access.Application
Dim dbName As String
Dim functionResult As Variant
' Access データベースのパスを設定
dbName = "C:\Path\To\Your\Database.accdb" ' データベースのパスを変更してください
' Access.Application オブジェクトを作成
Set appAccess = CreateObject("Access.Application")
' Access データベースを開く
appAccess.OpenCurrentDatabase dbName
' Access 内の関数を呼び出す(例: 関数名 "MyFunction")
functionResult = appAccess.Run("MyFunction")
' 必要に応じて関数の戻り値を使って何かを行う
Debug.Print "Function Result: " & functionResult
' Access を閉じる
appAccess.Quit
' オブジェクトの解放
Set appAccess = Nothing
End Sub
このコードでは、Access データベースのパス(dbName)を設定し、Access.Application オブジェクトを作成してデータベースを開きます。その後、Run メソッドを使用して Access 内の関数(MyFunction と仮定)を呼び出し、その結果を取得します。最後に、Access を閉じ、作成した Access.Application オブジェクトを解放します。
Access 内の関数の引数を渡す場合は、Run メソッドの第二引数以降に引数を指定します。詳細については、VBA のドキュメントを参照してください。