Jörg Lorenz: Daten von Excel verarbeiten

Beitrag lesen

Hi Roger,

allerdings setzt das nat. vorraus, das nicht nur der ie installiert ist, sondern auch direkt an dieser stelle. vielleicht gibt es ja noch einen anderen befehl...

Den Pfad zum Standardbrwoser kannst Du herausbekommen, indem Du das Script von http://www.vb-fun.de/cgi-bin/loadframe.pl?ID=vb/tipps/tip0072.shtml verwendest. Ich habe es Dir mal angepaßt:

Private Declare Function FindExecutable Lib "shell32.dll" Alias _
    "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory _
    As String, ByVal lpResult As String) As Long

Private Function StandardBrowser() As String
  Dim sExe As String
  Dim tmpFile As String
  Dim dNr As Integer
  tmpFile = Application.Path + IIf(Right$(Application.Path, 1) <> "", "", "") + "xxx.html"
  dNr = FreeFile
  Open tmpFile For Output As #dNr
  Close #dNr
  sExe = ExePfad(tmpFile)
  Kill tmpFile
  If sExe <> "" Then
    If InStr(LCase$(sExe), "iexplore") > 0 Then
      Browser = "Microsoft Internet Explorer"
    ElseIf InStr(LCase$(sExe), "netscape") > 0 Then
      Browser = "Netscape Communicator"
    ElseIf InStr(LCase$(sExe), "opera") > 0 Then
      Browser = "Opera"
    Else
      Browser = "kein Browser installiert."
    End If
  End If
  StandardBrowser = sExe
End Function

Private Function ExePfad(ByVal Datei As String) As String
  Dim Pfad As String
  Pfad = Space$(256)
  FindExecutable Datei, vbNullString, Pfad
  If Pfad <> "" Then
    Pfad = Left$(Pfad, InStr(Pfad, vbNullChar) - 1)
  End If
  If UCase$(Pfad) = UCase$(Datei) Then Pfad = ""
  ExePfad = Pfad
End Function

Sub test()
Dim strBrowserPfad As String
strBrowserPfad = StandardBrowser
MsgBox strBrowserPfad
End Sub

Mit der Funktion StandardBrowser kriegst Du den Pfad und kannst den in Shell verwenden. Es wird zwar nur 8.3 verwendet, aber es müßte auch funktionieren. Getestet habe ich es allerdings nicht ;-)

(ich weiss ja nicht, wie du in deinem html.xls beispiel das browserfenster ahst öffnen können...)

Das waren zwei Zeilen Code:

ActiveSheet.Hyperlinks.Add Anchor:=Range(strAdresse), Address:="C:\test.html"
Range(strAdresse).Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True

Dadurch ruft VBA den Browser seiner Wahl auf, das heißt den Browser, den MS gern aufgerufen hätte. ;-)

Viele Grüße

Jörg