エクセルVBAからACCESSのマクロを複数実行したいと考えております。
但し、ACCESS上は大元のマクロにマクロ1、マクロ2というように複数登録しており、
エクセルVBAで動かすACCESSのマクロは、複数のマクロを登録した大元のマクロを動かしています。
そうした際に、
エクセルVBAから実行すると、
ACCESS上で「"マクロ1"プロシージャが見つかりませんとのエラー」とのエラーが出てしまいます。
Application.runはプロシージャを動かすためのコードなので、
マクロタブにあるマクロを実行できないのは分かっているのですが、
DoCmd.RunMacroでマクロを動かすと、非同期で実行するコードのため、
今度は、エクセルVBA上の以下のコードでエラーが出てしまいます。
知りたいことと致しましては、
非同期処理とならない方法でDoCmd.RunMacro以外にマクロタブのマクロを動かす方法があるのかが知りたいです。
当方、初心者のため至らない点が多々あると思いますが、
解決策をご教授いただければ幸いです。
With oAcc .Run "実行" .CloseCurrentDatabase '閉じる .Quit End With
コードは以下のとおりです。
#エクセル上のコード Sub access2() Application.ScreenUpdating = False Dim oAcc As Object Dim sPath As String 'MDBパス sPath = "***.accdb" 'MDBオープン Set oAcc = CreateObject("Access.Application") Call oAcc.OpenCurrentDatabase(sPath) With oAcc .Run "実行" .CloseCurrentDatabase '閉じる .Quit End With Set oAcc = Nothing MsgBox "完了しました" End Sub
#アクセス上のコード マクロ1には複数のマクロを登録 Public Function 実行() Application.Run "マクロ1" End Function
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/05 03:52