下に同様の質問をしたのですが、削除方法分からない為、再度質問させていただきまし。
VB5.0を利用しています。
VBで書いたexeを実行した際に、そのプロセスID(自分の)は、GetCurrentProcessIdを利用すれば取得できると分かりました。
が、プログラム内でExcelを下記の様にオブジェクトを作成した場合、そのプロセスIDをどうやって取得すればいいのでしょうか?
ご存知の方居ましたら、教えて下さい。
Set ExcelObj = CreateObject("Excel.Application")
ここで起動?されたExcelのプロセスIDを取得したいのですが。
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
この回答への補足
有難う御座います。
プログラムが起動したExcelのみのプロセスIDを取得するには、どのようにしたら良いのでしょうか。
ご存知でしたらご教授下さるとありがたいのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA : スクレイピングできない 4 2023/05/12 22:26
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- その他(セキュリティ) Yahoo! JAPANのID取得について 1 2022/11/30 23:00
- ヤフオク! ヤフーアカウントについての質問です。 「不正利用が疑われる操作もしくは行為が検知されたため、利用規約 5 2022/08/29 20:22
- その他(動画サービス) xvideosからいきなりメール来て削除されました 下記の通りです 僕はもしかして悪用されてますか 2 2022/10/10 19:18
- Windows 10 バッチファイルでのエクスプローラー終了 1 2022/05/30 14:32
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
ウィンドウのタイトルからプロセス取得
Visual Basic(VBA)
-
VBAでこんなことできますか?
PowerPoint(パワーポイント)
-
VB6.0 SHELLで起動したプログラムを終了さしたいのですが
Visual Basic(VBA)
-
-
4
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
5
起動中のアプリ、ソフトの取得
Visual Basic(VBA)
-
6
VBで実行中のEXEファイルの情報を取得したい
Visual Basic(VBA)
-
7
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
-
8
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
9
0バイトのテキストファイル
Visual Basic(VBA)
-
10
起動しているプロセスの確認
Visual Basic(VBA)
-
11
ExcelVBAでAPIを使って外部ウインドウのエディットテキストを取得する方法
Visual Basic(VBA)
-
12
vbaから他のアプリを終了
Visual Basic(VBA)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
プロセスIDからウィンドウハンドルを取得する方法
C言語・C++・C#
-
15
他のアプリケーションの終了処理
Visual Basic(VBA)
-
16
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
17
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
18
VBAでコントロールのハンドルを取得したい
Visual Basic(VBA)
-
19
指定のWORKBOOKを前面表示する方法(エクセル:VBA)
Excel(エクセル)
-
20
Accessでテーブル名やクエリ名一覧の抜き出し
Access(アクセス)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
IISがフリーズ
-
Linuxでのスレッド間メッセージ...
-
VB.NET 自プログラムのプロセス...
-
パソコンに出てくるじゃまな表...
-
他のコンピュータのプロセスを取得
-
共有メモリの同時アクセスにつ...
-
Apacheの子プロセスが再起動す...
-
C#でのbatファイル実行結果取得
-
WMIでのプロセスの起動・終了監...
-
コマンド実行時の結果のリダイ...
-
sleep関数の精度について
-
OSPFでプロセスを分ける意義に...
-
SendMessageが失敗するときがある
-
Windowsでのfork方法
-
特定ユーザーのプロセス情報を...
-
c言語でプロセスIDを調べたい
-
C++でシェルを起動
-
他のアプリケーションをクリッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
explorer.exeが異様にメモリを食う
-
タスクマネージャーのプロセス...
-
VB6.0 SHELLで起動...
-
C#でのbatファイル実行結果取得
-
プロセスのアタッチ・デタッチ...
-
プロセスIDからウィンドウハ...
-
プロセスIDの取得方法について
-
popen について
-
C++のプログラムをバックグラウ...
-
非表示になったエクセルは?
-
Windowsでのfork方法
-
別のプロセスの関数を呼び出す...
-
sleep関数の精度について
-
Visual C++からpingを実行して...
-
ADOでアクセスのレコードに...
-
C++でシェルを起動
-
SendMessageが失敗するときがある
-
ウィンドウのタイトルからプロ...
-
OSPFでプロセスを分ける意義に...
おすすめ情報