Blödsinn
25.11.2011 10:45:41
Martin
Hallo Anton,
selbstverständlich geht das!
In den Kopf deines Moduls schreibst du:
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal Y As Long) As Long
Private 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)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Private Const MOUSEEVENTF_RIGHTUP As Long = &H10
Mit "AppActivate" kann der Focus der Anwendung (Excel zu Internet Explorer und natürlich auch zurück) gewechselt werden. Du musst die Bildschirmkoordinaten kennen, um die Maus an die linke obere Ecke des zu markierenden Textes zu setzen. Das geht so:
SetCursorPos 200, 200
... wobei die beiden Zahlen die Höhe und Breite in Pixeln von der oberen linken Bilschirmecke sind.
Anschließend muss die linke Maustaste geklickt werden...
mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
....und die Maus an die untere rechte Ecke des zu markierenden Textes gesetzt werden:
SetCursorPos 400, 400
Nun muss die gedrückte Maustaste wieder losgelassen...
mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
...und der markierte Text mit Strg+C über Application.SendKeys kopiert werden.
Per AppActivate wechseltst du wieder in die Zielanwendung (vermutlich Excel), um den kopierten Text einzufügen.
MfG
Martin