タイトルのとおり、vbaを使用して、ウィンドウハンドルから可視ウィンドウのタイトルと実行ファイルのフルパスを取得したいと考えています。 結果は、それぞれを e2セルから、縦に ①1つめのタイトル ②1つめのフルパス ③1つめのハンドル 空欄
エクセルVBAでShellオブジェクトを利用してすでに起動しているIE(InternetExplorer)を制御する方法について解説しています。こちらはVBAのIE制御を中心にまとめた入門サイトです。 これによって、次のような情報を取得できます。 参考 Scripting Guy さん、特定のタイトルが付いているコマンド ウィンドウを閉じる方法はありますか Microsoft Word を使用した独自のタスク マネージャの構築 (うそでしょ。いいえ、本当です) Win32 APIのEnumWindowsを使うと、画面上のすべてのトップレベルウィンドウ(親を持たないウィンドウ)を列挙できます。ウィンドウのタイトルは、GetWindowTextで取得 … この「プロセス一覧」をvbaだけで取得しようというのが今回のテーマです。 次のようにやります。 Sub Sample1() Dim WD, task, n As Long Set WD = CreateObject("Word.Application") ''Wordを起動します For Each task In WD. vbaでスクレイピングをしたい・・・でも目的の画面へのアクセス経路が複雑でたどりつけない・・・ そんなときは、先に目的の画面を開いておきhtmlを取得しましょう! ここでは、ウィンドウのハンドルを取得するのにクラス名又はキャプションタイトルを与えて FindWindow API で取得していますが、GetForegroundWindow API を使ってアクティブウィンドウのハンドルを取得する方法をSampleNo.128で紹介しています。 vbscriptでAppActivateとか使ってウィンドウのアクティブ化とか使ってるとウィンドウタイトルの文字列が無性にほしくなったりします。そんな時に使う起動中アプリケーションのタイトル取得スクリプトがこちら。※ Office Wordがインストールされている端末じゃないと動きません。 vbaで設定する前に、まず、オプション画面であらかじめアプアリケーションタイトルを入力しておきます。(こうしておかないとエラーになってしまいます。) 設定するとタイトルが表示されます。 次に、vbaでアプリケーションタイトルを設定します。 ここでは、ウィンドウのタイトルバーに表示されているテキスト(タイトル、キャプション)、あるいは、ウィンドウが属しているクラス名から、そのウィンドウを作成したプロセスを探す方法を紹介します。 ウィンドウのタイトル(Window.Caption プロパティ) Caption プロパティで、ウィンドウのタイトルバーに表示される名前を取得および設定する方法と使用例 ウィンドウのタイトルからプロセスを探す. この中から「2005年成績.xls」というウィンドウ名を持つWindowオブジェクトを取得しウィンドウのタイトルを取得します。 testwindow1.bas Sub テスト() Dim window1 As Window Set window1 = Application.Windows("2005年成績.xls") MsgBox window1.Caption End Sub
この中から「2005年成績.xls」というウィンドウ名を持つWindowオブジェクトを取得しウィンドウのタイトルを取得します。 testwindow1.bas Sub テスト() Dim window1 As Window Set window1 = Application.Windows("2005年成績
VBAでファイルを指定するダイアログを扱うには、すでに紹介したGetOpenFilenameやGetSaveAsFilenameがありますが、さらに、今回紹介する、FileDialogオブジェクト こちらも使用することができ、GetOpenFilenameやGetSaveAsFilenameにはない便利な機能が提供されています。 ウインドウの取得は操作の基本色々なアプリをマクロやVBAで操作する場合、対象となるウインドウ(=画面)をアクティブ取得して最前面に持ってくることが第一歩となります。今回はデスクトップ上に開いている画面を取得するVBAコードを紹介 …