Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Externes Programm aus Excel starten

709 views
Skip to first unread message

Michael

unread,
Apr 2, 2001, 5:32:09 PM4/2/01
to
Hallo,

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


Robert Gelbmann

unread,
Apr 3, 2001, 5:44:23 AM4/3/01
to
Hallo Michael!

---"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/


Michael

unread,
Apr 3, 2001, 7:52:42 AM4/3/01
to
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?

Viele Grüße aus München
Michael Rapp
Ra...@fengshuiPC.de

"Robert Gelbmann" <rgel...@mvps.org> schrieb im Newsbeitrag
news:eqwisKCvAHA.2100@tkmsftngp02...

Robert Gelbmann

unread,
Apr 3, 2001, 9:08:49 AM4/3/01
to
Hallo Michael!

---"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/


Michael

unread,
Apr 3, 2001, 3:22:25 PM4/3/01
to
Hallo Robert,
ich habe noch einmal die Übertragung Deiner Mail in das Makro kontrolliert
und den Fehler gefunden:
Beim Zusammensetzen der ersten Zeile habe ich versehentlich geschrieben
"ByVallpFile As String".
Nun funktioniert es hervorragend!!

Herzlichen Dank aus München

Michale Rapp
ra...@fengshuiPC.de


0 new messages