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

「ハンドルの値が取れるまでループさせる」といった処理を加えるとより安定する


Cafe maeko

マクロ関係の備忘録です。