Hallo zusammen,
ich habe vor mit Excel ein Auswerteprogramm namens CAQ anzusteuern. Über den Windows Aufgabenplaner zu einer bestimmten Tageszeit soll die Exceldatei ausführt werden.
Diese Exceldatei sollte ein anderes Programm starten. In diesem Programm müssen diverse Felder befüllt werden. "Hier dachte ich an die VBA Funktion Maus positionieren und klicken" wo nacheinander mehrere dieser Funktionen durchlaufen werden da mehrere Filter gesetzt werden müssen. Die Daten zum befüllen wären dann in dieser Exceldaten vordefiniert. Excel sollte diese kopieren und in die Felder des extern Programms einsetzen.
Danach sollte die Funktion drucken erfolgen und die PDF unter einem bestimmten Pfad ablegen.
Kann mir da jemand bitte helfen?
Mit diesem Code wird das gewünschte Programm nachm Öffnen von Excel gestartet und maximiert.
Code unter DieseArbeitsmappe:
Private Sub Workbook_Open()
Dim x As Integer
x = Shell("C:\Program Files\CAQ\CAQ.exe", vbMaximizedFocus)
AppActive "CAQ"
End Sub
Problem: Ich es nicht dieses Fenster automatisch in den Vordergrund zu holen. AppActive "CAQ" funktioniert nicht. Weiß jemand nen Rat?
Auch habe ich mittlerweile gefunden wie ich die Maus positionieren und anscheinend klicken kann. Nur leider wird der Mausklick nicht ausgeführt.
<i>Code unter Modul1</i>
Option Explicit
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)
Private Declare PtrSafe Function GetCursorPos Lib "user32.dll" ( _
ByRef lpPoint As POINTAPI) As Long
Private Declare PtrSafe Function SetCursorPos Lib "user32.dll" ( _
ByVal x As Long, _
ByVal y As Long) As Long
Private Declare PtrSafe Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Const VK_LBUTTON = &H1 ' Linker Mausbutton
Const VK_RBUTTON = &H2 ' Rechter Mausbutton
Const KEYEVENTF_KEYUP = &H2 ' Die angegebene Taste wird losgelassen
Public Sub maus_spazieren_Fahren2()
Dim myPos As POINTAPI
Dim Ziel_X As Long
Dim Ziel_Y As Long
Dim L As Long
Dim Click
Ziel_X = 327
Ziel_Y = 200
GetCursorPos myPos
If myPos.x >= Ziel_X Then
For L = myPos.x To Ziel_X Step -1
SetCursorPos L, myPos.y
Next
Else:
For L = Ziel_X To myPos.x
SetCursorPos L, myPos.y
Next
End If
If myPos.y >= Ziel_Y Then
For L = myPos.y To Ziel_Y Step -1
SetCursorPos Ziel_X, L
Next
Else:
For L = myPos.y To Ziel_Y
SetCursorPos Ziel_X, L
Next
End If
Click = GetAsyncKeyState(&H1)
End Sub
Irgendwie komme ich nicht weiter. Probiers schon den ganzen Tag :-(
Kann hier jemand evtl. weiterhelfen
|