- ベストアンサー
vbaから他のアプリを終了
エクセルVBAから他のアプリを終了するマクロを書きたいのですが、途中で行き詰ってます。 Sub test() Dim h As Long h = FindWindow(vbNullString, "タイトル") Call SendMessage(h, 0, 0, "ALT+{F4}") End Sub FindWindowでハンドルを取得してALT+F4を送ればいいじゃないかと思ってますが ALT+F4の送り方がわかりません。どなたか教えてください。 また、ほかに良い方法があれば併せてご提案くださると幸甚です。 よろしくお願いします。 -- エクセル2003
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
そこまでできているのなら下記のように変更して見て下さい。 VB6.0 用のコードをそのまま転記していますがご理解頂けるかと。 Private Sub hwndAcquire() 'ハンドル取得及び終了処理のサブプロシージャ Dim hwnd As Long Dim ret As Long If Len(strClassName) Then 'クラス名を与えてハンドルを取得 '起動中ならハンドルが返り、起動していなければ 0 が返る hwnd = FindWindow(strClassName, vbNullString) ElseIf Len(strCaptionName) Then 'キャプション名を与えてハンドルを取得する場合 'strCaptionName = "Microsoft Excel - Book1" '電卓の場合 "電卓" hwnd = FindWindow(vbNullString, strCaptionName) End If '指定のハンドルに終了のメッセージを送る ret = SendMessage(hwnd, WM_CLOSE, 0&, 0&) End Sub
お礼
おっしゃ。新年一発目の疑問が解決しました。 ありがとうございました。