• ベストアンサー

EXCELでアプリを...

EXCEL97を使っていますが、EXCELのあるブックを開いたとき特定のアプリケーション(OFFICEではない)を起動し、作業後ブックを閉じたらそのアプリケーションの閉じるようにできないでしょうか。 たとえば「TEST.xls」を開くと「○○.EXE」が実行され作業が終わり「TEST.xls」を終了すると、「○○.EXE」も終了するようにしたいのですが。可能でしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

ブックを開いた時、「電卓」(CALC.EXE)を起動し、ブックを閉じると、 「電卓」も終了します。 APIを使用する方法の一例です。 標準モジュールに下記コードを記述します。 Option Explicit Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal _   lpClassName As String, ByVal lpWindowName As String) As Long Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, _   ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Const WM_CLOSE = &H10 Sub Auto_Open()   Dim RetVal   RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' 電卓を実行します。 ' End Sub Sub ShutdownOtherApp()   Dim hWnd As Long   hWnd = FindWindow(vbNullString, "電卓") '  hWnd = FindWindow(vbNullString, "MS-DOS プロンプト")   Call PostMessage(hWnd, WM_CLOSE, 0, 0) End Sub '------------------------------------ 'ThisWorkbookに次のコードを記述します。 Private Sub Workbook_BeforeClose(Cancel As Boolean)   ShutdownOtherApp End Sub  

hassin
質問者

お礼

できました。 ありがとうございました。

その他の回答 (1)

noname#102878
noname#102878
回答No.1

何のアプリかわかりませんが、DDEやCOM対応じゃないのならVBAのShell関数とSendKeysをヘルプで調べてみてください。 がんばればできるはずです。

関連するQ&A