■
Public Function SendKeys(InpKeys As String)
'CreateObject("WScript.Shell").SendKeys InpKeys
Dim o As Object
Set o = CreateObject("WScript.Shell") ' インスタンス化
o.SendKeys InpKeys
' オブジェクトを使った処理
Set o = Nothing ' 最後に必ず Nothing を設定する
End Function
Option Explicit
Type coordinate
x As Long
y As Long
End Type
Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Declare Function GetCursorPos Lib "user32" (lpPoint As coordinate) As Long
Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Declare Sub mouse_event Lib "user32" ( _
ByVal dwFlags As Long, _
Optional ByVal dx As Long = 0, _
Optional ByVal dy As Long = 0, _
Optional ByVal dwDate As Long = 0, _
Optional ByVal dwExtraInfo As Long = 0)
Declare Sub Sleep Lib "kernel32" (ByVal ms As Long)
Sub saveCoordinates()
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets("座標")
Const CLICKNUM As Long = 3
Dim currentClickNum As Long
currentClickNum = 0
Do While currentClickNum < CLICKNUM
If GetAsyncKeyState(1) < 0 Then
currentClickNum = currentClickNum + 1
Dim c As coordinate
GetCursorPos c
sht.Cells(1 + currentClickNum, 2) = c.x
sht.Cells(1 + currentClickNum, 3) = c.y
Sleep 300
End If
Loop
Set sht = Nothing
End Sub
Sub loadCoordinates()
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets("座標")
Const CLICKNUM As Long = 3
Dim currentClickNum As Long
Dim i As Long
'データを配列に格納
ReDim Haidata(10, 3)
Dim j
For j = 1 To 5
Haidata(j, 1) = "A" & j
Haidata(j, 2) = "1." & j
Haidata(j, 3) = "0.0" & j
Next j
For i = 2 To 3
Dim x As Long
Dim y As Long
x = sht.Cells(i + 1, 2)
y = sht.Cells(i + 1, 3)
SetCursorPos x, y
Sleep 1000
mouse_event 2 '左ボタン押下のコード
mouse_event 4 '左ボタン解放のコード
Sleep 1000
mouse_event 2 '左ボタン押下のコード
mouse_event 4 '左ボタン解放のコード
SendKeys "{Down}"
SendKeys Haidata(i, 1) & i
SendKeys "{Up}"
SendKeys Haidata(i, 2) & i
SendKeys "{Tab}"
SendKeys Haidata(i, 3) & i
SendKeys "{Tab}"
Sleep 1000
Next i
Set sht = Nothing
End Sub
Sub マウスで画面の任意の位置をクリック()
SetCursorPos 100, 35 '左から100ピクセル、上から35ピクセルの位置にカーソルを移動
mouse_event 2 '左ボタン押下のコード
mouse_event 4 '左ボタン解放のコード
End Sub