Der FollowHyperlink Befehl kann eine URL mit Übergabeparametern aufrufen. Allerdings dürfen URL und Parameter insgesamt nur 256 Zeichen lang sein. Wenn man eine große Menge Parameter übertragen will, muss man tricksen.
Das VBA script legt hierfür einen HTML-file im Temp-Ordner des Windows-Systems an und füllt diesen mit einem Java-Script, das automatisch einen Link aufruft, der beliebig lang sein darf. Dieser lokale File wird dann mit FollowHyperlink aufgerufen.
Dabei wird die Funktion TempDirektory von www.kulpa-online.com benutzt.
Sub callHyperlink()
‘ Dimension all variables.
Dim DestFile As String
Dim FileNum As Integer
Dim i As Integer
Dim param As String
‘initialize webadress param
param = “http://mypage.de/myfile.aspx?“
‘fill param string like „a1=1&a2=2…&a256=256“
For 1 = 1 To 256
param = param + “&a” + CStr(i) + “=” + CStr(i)
Next
‘ define destination html file name.
DestFile = TempDirectory + “foreward.html”
‘ Obtain next free file handle number.
FileNum = FreeFile()
‘ create HTML file with redirection
Print #FileNum, “<html>”
Print #FileNum, “<head><script language=””javascript””>”
Print #FileNum, “<!–“
Print #FileNum, “var weitergeleitet = “”” + param + “””;”
Print #FileNum, “function weiterleitung() {window.location = weitergeleitet;}”
Print #FileNum, “setTimeout(“”weiterleitung()””, 3000);”
Print #FileNum, “// –>”
Print #FileNum, “</script>”
Print #FileNum, “</head>”
Print #FileNum, “<body>”
Print #FileNum, “Please wait, you will be taken to the destination”
Print #FileNum, “</body>”
Print #FileNum, “</html>”
‘ Close destination file.
Close #FileNum
ActiveWorkbook.FollowHyperlink Address:=DestFile, _
NewWindow:=True
End Sub
Dann wird POST statt GET angewendet. Das ließe sich doch auch sicher anders lösen.
Mist, jetzt wo es ein echtes Kommentar gibt und nicht nur ständig Spam kann ich die Kommentarfunktion nicht mehr abstellen…
Mupitz!