本文へスキップ

簡単!!エクセルVBAメモ

3.VBA応用(使用ケース集)

IE操作(マウス操作)


  IE操作で、固定の作業なら、マウスの操作を利用したほうが早い!
  というケースがあり以下サンプルプログラムを作成しました。


  【サンプル処理イメージ】
   @マクロを実行する。
   Aマウス操作する。(所定の座標で、左クリックする)




VBAサンプル
================================================
=== 開始!!=======================================
================================================

'マウスカーソル位置指定に必要なAPI
Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal Y As Long) As Long

'マウスカーソル座標取得に必要なAPI
Declare Function GetCursorPos Lib "user32" (lpPoint As mPointAPI) As Long

Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

'ShowWindowを使用する場合のお約束
Declare Function ShowWindow Lib "user32" (ByVal hwindow As Long, ByVal cmdshow As Long) As Long
 
'カーソル座標取得時に使う構造体
Private Type mPointAPI
 x As Long
 Y As Long
End Type

Sub 所定の座標をクリック()

 Dim mouseX As Long, mouseY As Long 'マウス用の定義
 Dim 結果 As Long
 
=====================================================
'@初期処理
=====================================================

'IEオブジェクトを作成し、開く(今はページしていないので空白)
    Dim ie As Object
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True

=====================================================
'A画面遷移
=====================================================
'画面をここへ移動する
    ie.Navigate "http://www.yahoo.co.jp/"
  '画面が開くまで待つ
    Do While ie.Busy Or ie.ReadyState < 4
        DoEvents
    Loop

=====================================================
'B画面を最大化して、倍率を100にする。
=====================================================
 
 '画面最大化
   ret = ShowWindow(ie.Hwnd, 3)
 
 'サイズの調整をする処理
    Const OLECMDID_OPTICAL_ZOOM = 63
    Const OLECMDEXECOPT_DODEFAULT = 0
    Dim ZoomRate As Variant
    ZoomRate = 100 '拡大率

   ie.ExecWB OLECMDID_OPTICAL_ZOOM, _
             OLECMDEXECOPT_DODEFAULT, _
             CLng(ZoomRate)
                         
=================================================-
'=== マウスクリック処理 START
=================================================-
 '@座標を入れる
    mouseX = "500"
    mouseY = "500"
 'Aマウスが座標に移動する
    dummy = SetCursorPos(mouseX, mouseY)

 'B左クリックします。
    Call mouse_event(&H2, 0, 0, 0, 0)  '左マウスを押した状態
    Call mouse_event(&H4, 0, 0, 0, 0)  '左マウスを放した状態
'※上2行でクリックである。

End Sub

===============================================
=== 終了!!======================================
===============================================

  トップページへ戻る