• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プロセスIDの取得方法について)

VB5.0を利用して、プロセスIDの取得方法について教えてください

このQ&Aのポイント
  • VB5.0で書いたexeを実行した際にはGetCurrentProcessIdを利用してプロセスIDを取得できますが、Excelをオブジェクトとして作成した場合、プロセスIDをどのように取得することができますか?解決策を教えてください。
  • VB5.0を使用してExcelをオブジェクトとして作成した場合に、起動したExcelのプロセスIDを取得する方法を教えてください。
  • VB5.0でプログラムを実行し、Excelをオブジェクトとして起動した場合、そのExcelのプロセスIDを取得したいです。どのように実現できますか?

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

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

FindWindowなどのキャプションか、クラス名で対象オブジェクトハンドルを取得し、 GetCurrentProcessId関数で、プロセスIDとスレッドIDを取得する方法が一般的。 過去スレにいっぱいサンプルがあります。 スクリプトを使用するなら、以下の方法もあったりする。 でもどちらも複数EXCEL起動時は、考えなければいけない部分多し。 Sub Main()   Dim ExcelObj As Excel.Application      Set ExcelObj = CreateObject("Excel.Application")   ExcelObj.Visible = True   Call DebugHandle   ExcelObj.Quit   Set ExcelObj = Nothing End Sub Public Function DebugHandle()   Dim strSQL   As String   Dim objWk    As Object   Dim objXlsProc As Object   strSQL = "SELECT Handle FROM Win32_Process WHERE Name = 'EXCEL.EXE'"   Set objWk = GetObject("winmgmts:").ExecQuery(strSQL)   For Each objXlsProc In objWk     Debug.Print objXlsProc.Handle   Next End Function

nosiyuho
質問者

お礼

有難う御座います。 いろいろと試しながらやってみます。

nosiyuho
質問者

補足

有難う御座います。 プログラムが起動したExcelのみのプロセスIDを取得するには、どのようにしたら良いのでしょうか。 ご存知でしたらご教授下さるとありがたいのですが。

関連するQ&A

専門家に質問してみよう