• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルから現在起動しているアクセスファイルをアクティブにしたい)

エクセルから現在起動しているアクセスファイルをアクティブにする方法

このQ&Aのポイント
  • エクセルから現在起動しているアクセスファイルをアクティブにする方法について教えてください。
  • エクセルマクロを利用して現在開いているアクセスをアクティブにする方法がうまくいかないです。
  • アクセスアプリケーションが開いている状態で、エクセルから現在起動中のアクセスファイルをアクティブにする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.3

おじゃまします。 アクティブ=前面へ という意味合いでしょうか。 違っていたらごめんなさい。スルーしてください。 Win32 APIを使用した例となります。 参考程度にしてください。 ExcelのVBAは詳しくないので、以下の処理を貼り付けたシートが変更されるたびに前面に持ってくる(アクティブ?)処理をするものになります。 Private Sub Worksheet_Change(ByVal Target As Range)   Dim objAcc As Object   On Error Resume Next   Set objAcc = GetObject(, "Access.Application")   If (Not objAcc Is Nothing) Then     Call appShowWindow(objAcc.hWndAccessApp)     Set objAcc = Nothing   End If End Sub その前に、以下のものを標準モジュールに張り付けておきます。 ' ---------- ここからを標準モジュールに貼り付け Const SW_SHOWMINIMIZED = 2 Const SW_RESTORE = 9 Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" _  (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Public Sub appShowWindow(hWnd As Long)   Call apiShowWindow(hWnd, SW_SHOWMINIMIZED)   Call apiShowWindow(hWnd, SW_RESTORE) End Sub ' ---------- ここまで ※ 関数名の命名は私流です。   API 関数は、関数名先頭に api を付けています。 ※ app で始まる関数は独自関数なので、適宜名前等変更してください。 ※ ShowWindow の第2引数については、以下に詳しく載ってました。   http://yokohama.cool.ne.jp/chokuto/urawaza/api/ShowWindow.html ※※ ShowWindow で アクティブ化 のみでは前面に出てこなかったので、1度最小化してから戻してます。(これでいいのかは?) ※※ VBE画面からの実行では、前面にはこなかった。

rieury
質問者

お礼

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

その他の回答 (2)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

「現在開いているアクセス」ということは それは見えているんですよね? 可視にするコードは不要では? Sub アクセスをアクティブにする() Dim app As Object Set app = GetObject(, "Access.Application") 'app.Application.Visible = True 'app.Visible = True End Sub

rieury
質問者

お礼

何度もすいません。 エクセルもアクセスも起動していて エクセルがアクティブな時に アクセスをアクティブにしてEnd Subで終わる方法が知りたいです。 このコードも実行してみましたが何も変わりませんでした。

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

Set app = GetObject(, "Access.Application")

rieury
質問者

お礼

早速のご回答ありがとうございます。 こういうことでしょうか? Sub アクセスをアクティブにする() Dim app As Object Set app = GetObject(, "Access.Application") app.Application.Visible = True app.Visible = True End Sub ただこれだと 「指定した式に、Visibleプロパティに対する正しくない参照が含まれます。」 どうすればいいのでしょうか? 再度よろしくお願いします。

関連するQ&A

専門家に質問してみよう