即効テクニック |
●概要● 宣言文 Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 設定項目 内容 pClassName ウィンドウが属するウィンドウクラス名を指定[省略不可] lpWindowName ウィンドウのタイトルバーの文字列を指定[省略不可] ウィンドウ操作を行う場合には、ウィンドウハンドルを利用します。 引数で指定したウィンドウクラス名と、引数 で指定したタイトルバーの文字列からウィンドウハンドルを取得します。一方もしくは両方を指定しない場合には、組み込み定数「vbNullString」(値0の文字列)を指定します。 ウィンドウには重なり順(Zオーダー)があり、最前面のウィンドウから順に検索します。戻り値はウィンドウハンドルで、失敗時には、「0」を返します。 次のコードは、メモ帳のウィンドウハンドルを取得して、メッセージダイアログで表示するサンプルです。 ●サンプル● Private Declare Function FindWindow _ Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String _ , ByVal lpWindowName As String) As Long 'クラス名からウィンドウハンドルを取得する Sub Sample() Dim myHwnd As Long 'メモ帳のウィンドウハンドルの取得 myHwnd = FindWindow("Notepad", vbNullString) MsgBox myHwnd End Sub ●補足1● サンプルは、メモ帳を起動してから実行してください(メモ帳が起動していない場合は、メッセージダイアログに「0」が表示されます)。 ●補足2● ウィンドウクラス名の主なものを挙げると次のようになります。 アプリケーション ウィンドウクラス名 Access OMain Excel XLMAIN Word OpusApp PowerPoint PP10FrameClass Internet Explorer IEFrame Visual Basic Editor wndclass_desked_gsk エクスプローラ ExploreWClass メモ帳 Notepad ワードパッド WordPadClass 電卓 SciCalc ペイント MSPaintApp ●補足3● Accessアプリケーションのウィンドウハンドルは、ApplicationオブジェクトのhWndAccessAppメソッドで取得できます。