[[20131129163736]] 『VBAでIE操作』(あや) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAでIE操作』(あや)

 2003 XP IE6

 ここの掲示板でもいろいろ教えて頂いて
 組み合わせてつかわさせて貰っております。

 [[20131122133208]]
 で教えて頂いたものを使って進めております。

 アクティブウィンドウの画面ハードコピー後
 画面スクロールで下に下りて
 アクティブウィンドウの画面ハードコピーを取る
 この作業をVBAにしています。
 ------------------------------------------
         keybd_event &H12, 0, 0, 0
         keybd_event &H2C, 1, 0, 0
         keybd_event &H12, 0, 2, 0

         Sleep 3000
         Set ObjIE = Windw
         SetForegroundWindow (ObjIE.hwnd)

         Shell "CScript ""C:\skey07.vbs""", 0

         Sleep 3000
         keybd_event &H12, 0, 0, 0
         keybd_event &H2C, 1, 0, 0
         keybd_event &H12, 0, 2, 0
 --------------------------------------------
 skey07.vbsの中身

 Set WshShell = WScript.CreateObject("WScript.Shell")

 WshShell.    SendKeys "+{TAB},True"	

 --------------------------------------------
 skey07.vbsを使っているのは、
 タイミングがずれたりしやすいので
 確実に押せる方法として?使っています

  少し話しがずれますが…
  Sendkeysは{END}ではなく、+{TAB}を使っているのは
  画面にフォーカスが当たってないようで
  (上のバーは青くなっているので選択されているように見えるのですが)
  ENDが効かないため。(ENDに限らず、矢印やPagedownも効かない)
  いろいろ試していて、Shift+TABだと画面したのボタンにカーソルがセットできるため

 話しを戻して、
 上記の記述だと上半分ハードコピー後
 下スクロールが機能せず、
 上半分のままハードコピーをもう一度取っている動きになります

 確認したこととして、
 上3行を飛ばして動かしたところ

         Sleep 3000
         Set ObjIE = Windw
         SetForegroundWindow (ObjIE.hwnd)

         Shell "CScript ""C:\skey07.vbs""", 0

         Sleep 3000
         keybd_event &H12, 0, 0, 0
         keybd_event &H2C, 1, 0, 0
         keybd_event &H12, 0, 2, 0

 下半分スクロールをして、
 ハードコピーと
 OKの動きになりました

 なので、keybd_eventの後にSendkeysという組み合わせが良くないのかな?と思っているのですが…
 正直よくわかりません

 理解不足・説明不足の部分はあるかとは思いますが
 解消できそうなところや、
 別の方法などありましたら教えてください。


 すみません、解決しました。
 keybd_eventをどういうものかぼんやり理解してたんですが
 もう一度ログ読み直してたらわかりました

 ハードコピーのキーの解除をしていなかったようで
 下記にするとOKでした

          keybd_event &H12, 0, 0, 0
          keybd_event &H2C, 1, 0, 0
          keybd_event &H2C, 0, 2, 0
          keybd_event &H12, 0, 2, 0

 おさわがせしました

 (あや)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.