- ベストアンサー
AccessからExcelのVBAを動かしたい
2002です。 Excel_A.xlsからExcel_B.xlsのFromAccessプロシージャを実行する場合、 Application.Run "'" & ActiveWorkbook.Path & "\Excel_B.xls'!FromAccess" でいけたのですが、、、 Access_A.mdbから次のようにやると Application.Run "'" & CurrentProject.Path & "\Excel_B.xls'!FromAccess" エラーになります。 それで、次のようにやってみたら動いたのですが、FromAccessが一気に終了して しまい、デバッグできません。 Dim myExcel As Object Set myExcel = CreateObject("Excel.Application") Set myExcel = GetObject(CurrentProject.Path & "\Excel_B.xls", "Excel.Sheet") myExcel.Application.Visible = True myExcel.Application.UserControl = True myExcel.windows(1).Visible = True myExcel.Application.Run "FromAccess" デバッグしながら、AccessからExcelのプロシージャを実行するにはどうしたらいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
2000しか知りませんが希望のようなデバッグはできないと 思います。 Excel_B.xlsをデバッグした後Access_Aのデバッグをするか、 FormAccessの中を移行して全てをAccess_Aから実行するかの どちらかになるのではないでしょうか。 ちなみに Set myExcel = CreateObject("Excel.Application") の行は必要ないです。
その他の回答 (1)
- nicotinism
- ベストアンサー率70% (1019/1452)
FromAccess の中に、Stop と1行加えれば そこで止まるので、Excel のVBE ウィンドウが開きました。 でも本末転倒のような気もします (^^)v Dim ObjXL As Object Set ObjXL = CreateObject("Excel.Application") ObjXL.Workbooks.Open ("d:\分配.xls") 'ObjXL.Visible = True ObjXL.Run "test1" ObjXL.Workbooks("分配.xls").Close SaveChanges:=True ObjXL.Quit Set ObjXL = Nothing もっとも、Access か Excel の中で完結させるようにした方が 後々のためにもヤヤコシクなくてよいと思います。 思わぬプロセスが残ったままなどになりかねないし・・・
お礼
ありがとうございます。 結局、Excel側でやることになりました。先にも書きましたが、 AccessではADOが使えればいいだけで、これはExcelでも同じ ように使えますから。。 ところが、Excel側でWebクエリをVBA上で使っているのですが、 これは、Excelにしかない機能なのでどうにもなりません。
お礼
ありがとうございます。 ダメですか。 じゃあ、反対にExcelからだったらアクセスを処理した方が いいかもしれません。どっちみち、ADOかDAOで処理してい るだけだし。。 >Set myExcel = CreateObject("Excel.Application") >の行は必要ないです。 そうでした。w