引用:
ExcelとAccessの両方のファイルを開いている状態で、
Excelファイル内のボタンクリックによりAccessの特定のフォームを開き、
Accessのウインドウを前面に表示させたいと思っています。
引用:
<Excel側>
Sub アクセスに移動()
Dim objAcc As Object
Set objAcc = GetObject(,"Access.Application")
If Not objAcc Is Nothing Then
objAcc.Run "Testプロシージャー"
End If
Set objAcc = Nothing
End Sub
( Excel ブック側の標準モジュール)
-------------------------------------------------------------------
Option Explicit
'モジュールレベルで API 関数の宣言を行なう
Private Declare PtrSafe Sub SetForegroundWindow Lib "user32" (ByVal hWnd As LongPtr)
Sub アクセスに移動()
Dim objAcc As Object
On Error Resume Next
Set objAcc = GetObject(, "Access.Application")
If Err.Number <> 0 Then
MsgBox Err.Number & ": " & Err.Description, _
vbCritical, _
"実行時エラー"
Exit Sub
End If
On Error GoTo 0
'Accessのアプリケーションウィンドウを最前面に
SetForegroundWindow objAcc.hWndAccessApp
objAcc.Run "Testプロシージャー"
Set objAcc = Nothing
End Sub
-------------------------------------------------------------------
以上のようになさればよろしいでしょう。