Guten Morgen,
ich habe folgendes Problem:
Ich habe eine Anwendung im IE geöffnet, der User ist angemeldet und befindet sich auf der Startseite. Ich möchte nun aus einer anderen Anwendung heraus ein Makro aufrufen, dass:
a) Den geöffneten IE anhand einer eindeutigen Kennung (Name) identifiziert
b) Den geöffneten IE in den Vordergrund holt und aktiviert.
c) Mir ein Objekt vom Typ SHDocVw.InternetExplorer aus der Bibliothek Microsoft Internet Controls zurückgibt, sodass ich über diesen wiederrum in den HTML Quellcode und das DOM einsteigen kann. Die Startseite stellt mir Methoden bereit, an die ich nunmehr andocken möchte.
Schritt a und b löse ich über den Window Handle, was auch bereits einwandfrei funktioniert. Allerdings kann ich vom Window Handle nicht auf das SHDocVw.InternetExplorer Objekt wechseln, da hier eine Typunverträglichkeit vorliegt. Soweit ich es gelesen habe, ist ein Typcast in VBA nicht möglich. Wie kann ich das Problem dann lösen?
Hier ist ein (Teil)ausschnitt des Quellcodes, insb. derjenige, der nicht funktioniert.
Sub Main(JsonFile As String)
'Bibliothek: Microsoft Internet Controls
Dim IE_Handle As Long Dim IE As SHDocVw.InternetExplorer
IE_Handle = OpenWindow
'funktioniert bereits, Funktion OpenWindow hier nicht weiter aufgeführt
If IE_Handle <> 0
Then Set IE = IE_Handle
'hier schlägt der Typcast fehl
IE.Visible = True
'Warten auf Fertigladen
Do While IE.ReadyState <> READYSTATE_COMPLETE
Loop
Else
'Verhalten, wenn kein IE geöffnet ist definieren
End If
End Sub |