![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
アクセスからエクセルを開いた時に
エクセルがアクティブになったりならなかったり、
その時によって違うのですが
確実にエクセルをアクティブにする方法はありますか?
AppActivateステートメントを使うという事がわかったのですが
AppActivateをどうやって使えばいいでしょうか?
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Sub test()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim MyFileName
Dim MyFileFullName
Dim プロシージャー名
MyFileName = "book.xlsm"
MyFileFullName = CurrentProject.Path & "\" & MyFileName
プロシージャー名 = "開く"
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open(MyFileFullName)
xlApp.Visible = True
xlApp.Run "'" & MyFileFullName & "'!" & プロシージャー名
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
で問題なくエクセルファイルを立ち上げられますが
ここで確実にエクセルをアクティブ(手前に表示)にする方法を教えてください。
No.1ベストアンサー
- 回答日時:
を参考にして。
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
Sub test()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim MyFileName
Dim MyFileFullName
Dim プロシージャー名
MyFileName = "book.xlsm"
MyFileFullName = CurrentProject.Path & "\" & MyFileName
プロシージャー名 = "開く"
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open(MyFileFullName)
xlApp.Visible = True
SetForegroundWindow xlApp.hwnd 'としたらどうでしょ?
xlApp.Run "'" & MyFileFullName & "'!" & プロシージャー名
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
APIを使うのですか。
xlApp.Visible = True
の下に
SetForegroundWindow xlApp.hwnd
に入れたらアクティブになりました。(今の所)
ちなみに
SetForegroundWindow xlApp.hwndは
Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
の方を使っているようですが
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
は何の意味があるのでしょうか?
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
をコメントアウトしても問題なく動きました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エラー処理 3 2022/04/11 14:58
- Visual Basic(VBA) バックグラウンドのプロセスのエクセルを閉じる方法 4 2022/05/12 15:39
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) 【VBA】 Alt+PrintScreenにてアクティブウィンドウのスクショを貼付する方法 4 2022/12/08 20:53
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) FileSearch2007に変わる構文について 1 2022/12/16 16:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワーポイントをエクセルファ...
-
エクセルで「500時間」を「何日...
-
エクセルで使えるかわいい枠を...
-
エクセル 列の最大数はIV?
-
エクセルで検索して、ヒットセ...
-
エクセルに変な矢印が出てクリ...
-
xl
-
エクセルでの囲い文字
-
エクセル関数の解読サイトなん...
-
AccessにExcelのデータがリンク...
-
「ジャストカルク」を使用中の方へ
-
楽譜をデータベース化したい!
-
エクセルで数値の上3桁で切捨...
-
エクセルに貼った画像が変形し...
-
差し込み印刷での小数点表示に...
-
確実にエクセルをアクティブに...
-
Accessのクエリの結果を、既存...
-
エクセル関数を使用して。
-
Excelのメールメニューを...
-
インターネットのページをエク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントをエクセルファ...
-
エクセルで「500時間」を「何日...
-
エクセル 列の最大数はIV?
-
エクセルで使えるかわいい枠を...
-
エクセル関数の解読サイトなん...
-
xl
-
エクセルで数値の上3桁で切捨...
-
エクセルのマウス操作(左クリ...
-
PDFの請求明細をエクセルにしたい
-
エクセルに変な矢印が出てクリ...
-
エクセルで検索して、ヒットセ...
-
Accessのクエリの結果を、既存...
-
並び順の違う2つのエクセル表
-
エクセルに貼った画像が変形し...
-
エクセル関数を使用して。
-
差し込み印刷での小数点表示に...
-
「ジャストカルク」を使用中の方へ
-
エクセルでの囲い文字
-
エクセルデータをメモ帳に
-
エクセル 「クリップボードを開...
おすすめ情報