WinAPI
Windows API
ウィンドウ
画面上の矩形領域(デスクトップ、アプリケーション(Excel)、ユーザーフォーム、タスクバー)
ウィンドウの属性
①ウィンドウハンドル:割り当てられた識別子
②ウィンドウクラス:外観・動作を定義するもの
BUTTON:ラジオボタンなど
COMBOBOX
EDIT:テキストボックス
LISTBOX
SCROLLBAR
MDICLIENT
STATIC
③ウィンドウスタイル:ウィンドウクラスでは指定できない外観・動作を定義する定数
④ウィンドウ名
⑤位置・サイズ・Zオーダー(ウィンドウが重なっているときの順序)
コールバック関数
プロセスID
プロセス名
コントロールID
変数
API関数の戻り値を格納する変数はrc(return code)としましょう。
バージョン
VBAはUnicodeをANSIに変換してからAPIに渡し、APIから戻ってきたANSIをUnicodeに再変換する
→ANSIバージョン(末尾がA)を指定しなければならない
関数の例
FindWindowEx
EnumChildWindows
・Application.Hwndプロパティ
・GetActiveWindow関数(Win32API)
・GetDesktopWindow関数(Win32API)
・FindWindow関数(Win32API)
・FindWindowEx関数(Win32API)
・GetWindow関数(Win32API)
------------------
ダイアログボックス 保存 vba api
'ハンドル取得
hWnd = FindWindow(vbNullString, "名前を付けて保存")
'保存ボタンのハンドル取得
hWnd3 = FindWindowEx(hWnd, 0, "Button", "保存(&S)")
'保存ボタンをクリック
SendMessage hWnd3, &HF5, 0, 0
「ハンドルの値が取れるまでループさせる」といった処理を加えるとより安定する
0コメント