プロが教えるわが家の防犯対策術!

エクセルの標準モジュールには→エクセル側のプロシージャー
アクセスの標準モジュールには→アクセス側のプロシージャー
と言う名前のプロシージャーが作成されています。
これをどちらもエクセル側で実行させることは出来ないでしょうか?

「アクセス側のプロシージャー」ではアクセス側の処理が実行されます。
でもできればエクセル側のコマンドボタンを一回押すだけで
エクセルとアクセスの両方の処理を実行させたいです。

エクセルの標準モジュールには
Sub エクセル側のプロシージャー()
Call アクセス側のプロシージャー
End Sub
これを実行すると
コンパイルエラーになります。

どうすれば一度で二つのアプリケーションのプロシージャーを実行させることが可能でしょうか?
よろしくお願い致します。

A 回答 (2件)

> Application.Run で実行してみましたがエラーになってしまいました。

。。

それは、Excel 側の話ですか? Access 側?

Excel の標準モジュールで単に Application と書いたら、それは Excel.Appliaction
のことです。
Excel 側から Access のプロシージャを実行するには、事前に Access Application
を取得し、Access.Application の Run を実行します。

' ■ Excel VBA ■

' // 標準モジュール
Sub Accessのプロシージャを呼び出す()

  Dim accApp As Object ' // Access.Application
  
  ' // Access.Application を取得する
  Set accApp = GetObject("C:\test.mdb")
  If Not accApp Is Nothing Then
    accApp.Visible = True
    accApp.Run "TestProcedure"
  End If
  
  Set accApp = Nothing
  
End Sub


' ■ Access VBA -- C:\test.mdb を作成 ■

' // 標準モジュール
Sub TestProcedure()
  MsgBox "Call されました"
End Sub
    • good
    • 2
この回答へのお礼

おお!
できました!
ありがとうございます。

お礼日時:2008/06/05 11:39

こんにちは。


Access は起動している(目的のデータベースが開いている)のですよね。
Run メソッドかな?
    • good
    • 0
この回答へのお礼

Application.Run で実行してみましたがエラーになってしまいました。。。
ご回答ありがとうございます。

お礼日時:2008/06/04 14:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A