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