ich versuche gerade, von Excel (VBA), eine Acrobat Reader (.pdf) Hilfedatei
zu öffnen.
Mein Problem besteht darin, dass ich nicht bestimmt weiß, wo oder ob
überhaut
Adobe Acobat auf dem Rechner des jeweiligen Nutzers vorhanden ist. Gibt es
eine Routine, welche die
Registrierung von Dateiendungen in Windows zur Hilfe nimmt, um eine Datei
und mit ihr
das Programm zu starten.
Herzlichen Dank im Voraus
Michael Rapp
fengshuiPC
---"Michael" <ma...@fengshuiPC.de> schrieb ...
> ich versuche gerade, von Excel (VBA), eine Acrobat Reader (.pdf)
Hilfedatei
> zu öffnen.
> Mein Problem besteht darin, dass ich nicht bestimmt weiß, wo oder ob
> überhaut
> Adobe Acobat auf dem Rechner des jeweiligen Nutzers vorhanden ist. Gibt
es
> eine Routine, welche die
> Registrierung von Dateiendungen in Windows zur Hilfe nimmt, um eine Datei
> und mit ihr
> das Programm zu starten.
In VBA selbst ist so etwas nicht vorgesehen, aber du kannst dir eine
API-Funktion zunutze machen; kopiere den folgenden VBA-Code in ein
Modulblatt:
'------snip------
' nur *eine* Zeile (vor dem "Sub")
Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long
' Beispiel für die Funktionsverwendung ...
Sub TestIt()
Dim erfolg As Boolean
erfolg = DateiStarten("D:\wu_gel\test\test.xxx")
If erfolg Then
MsgBox "Die Datei wurde erfolgreich gestartet!"
Else
MsgBox "Hat leider nicht geklappt!"
End If
End Sub
' Die eigentliche Funktion ...
Private Function DateiStarten(sDateiName As String) As Boolean
Dim ZuStartendeDatei As String
Dim erg As Long
' solange nicht das Gegenteil bewiesen wurde ...
DateiStarten = False
erg = ShellExecute(0, "open", sDateiName, "", "", 1)
Select Case erg
Case 2
MsgBox "Datei nicht gefunden"
Case 3
MsgBox "Verzeichnis nicht gefunden"
' d.h. wohl: Programm ist nicht installiert
Case 31
MsgBox "Dateierweiterung ist nicht registriert"
' Speichermangel, falsche Windows-Version usw.
Case Is <= 32
MsgBox "Fehler Nr. " & erg
' alles über 32 ist "Erfolg" ...
Case Else
DateiStarten = True
End Select
End Function
'------snip------
--
In der Hoffnung geholfen zu haben, verbleibe ich mit einem leisen
Servus aus Wien,
-Robert Gelbmann-
---
MS MVP für Excel
EML: rgel...@mvps.org
Neu erschienen: "Excel für Rechnungswesen und Controlling", 3. Auflage
Mehr Infos unter: http://www.roehrenbacher.at/publikat/xl3/
Viele Grüße aus München
Michael Rapp
Ra...@fengshuiPC.de
"Robert Gelbmann" <rgel...@mvps.org> schrieb im Newsbeitrag
news:eqwisKCvAHA.2100@tkmsftngp02...
---"Michael" <ma...@fengshuiPC.de> schrieb ...
> Hallo Robert,
> danke für Deine Hilfe. Noch läuft die Routine jedoch nicht bei mir. Ich
ende
> immer mit der gleichen Excel Meldung case 2 "Datei nicht gefunden", obwohl
> der Pfad richtig ist und die Datei vorhanden ist. Ich habe ein WinNT 4.0
SP
> 6a System mit Office 2000. Hast Du eine Idee, woran es liegen könnte?
Nein, nicht wirklich. Ich könnte mir höchstens vorstellen, dass es
Berechtigungsprobleme unter NT gibt.
Bei mir funktioniert der VBA-Code jedenfalls in allen erdenklichen
Situationen.
Aber vielleicht hat ja jemand anderer noch eine Idee?
--
Servus aus Wien,
-Robert Gelbmann-
---
MS MVP CE for Excel
Excel-FAQ's: http://www.roehrenbacher.at/erc/faq/
Herzlichen Dank aus München
Michale Rapp
ra...@fengshuiPC.de