2013年09月08日

VBA:IEの画面をキャプチャする手順

ソースは緑里庵のサイトを参照。
gooのトップページをキャプチャした画像。goo.bmp(9.26MB)
1.InternetExplorerオブジェクトを取得
IEを新規に開くか、すでに開いているIEを取得する。
2.IEの表示部分のWindowハンドルを取得
IEのWindowハンドルから子ウインドウをクラス名で辿る。
"Frame Tab" → "TabWindowClass" → "Shell DocObject View"
3.2で取得したWindowハンドルからBitmapを作成
2のWindowハンドルからDCを取得 → 互換DCを作成 → 互換DCの互換Bitmapを作成。作成するBitmapの幅と高さは、document.body.scrollWidth / scrollHeight
4.IEのDCから互換DCへ描画
ドキュメントが1画面に収まらない場合は、描画 → スクロール → 描画 …と繰り返す。
5.Bitmapを保存する
クリップボードにコピーする場合はBitmapハンドルを渡すだけ。
ファイルに作成する場合は、ヘッダーを作成しBitmapをバッファに取得して書き込む。
posted by 忘却の達人 at 09:49| Comment(5) | TrackBack(0) | vba | このブログの読者になる | 更新情報をチェックする