Home > Artikel > Ausgabe 1/2018 > Dokumente per VBA öffnen

Dokumente per VBA öffnen

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Es gibt verschiedene Anwendungsfälle, in denen Sie die Namen von Dateien in den Tabellen einer Datenbank speichern oder auch Dateien erzeugen, die Sie anschließend öffnen wollen, um diese dem Benutzer anzuzeigen. Für diesen Fall benötigen Sie eine entsprechende Anweisung, um die Dokumente gleich mit der passenden Anwendung zu öffnen. Welche das ist, entscheiden die im System dafür hinterlegten Informationen – und welchen Befehl Sie zum Öffnen verwenden, zeigt Ihnen dieser Artikel.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1801_DokumentePerVBA.accdb.

ShellExecute

Das Mittel der Wahl zum Öffnen von Dateien mit den im System hinterlegten Anwendungen ist die API-Funktion ShellExecute. Diese deklarieren Sie in einem Standardmodul wie folgt:

Public 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

Wenn Sie einfach nur ein Dokument öffnen wollen – wie im folgenden Beispiele ein Word-Dokument –, setzen Sie beispielsweise den folgenden Befehl im Direktbereich des VBA-Editors ab:

ShellExecute 0, "open", CurrentProject.Path & "\Beispiel.docx", "", "", SW_SHOWNORMAL

Wichtig ist hier, dass Sie neben den übrigen Parametern als dritten Parameter den Pfad zu dem zu öffnenden Dokument angeben. Für den letzten Parameter können Sie verschiedene Werte verwenden, die wir in Form von Konstanten deklariert haben:

Public Const SW_HIDE As Long = 0

Public Const SW_SHOWNORMAL As Long = 1

Public Const SW_NORMAL As Long = 1

Public Const SW_SHOWMINIMIZED As Long = 2

Public Const SW_SHOWMAXIMIZED As Long = 3

Public Const SW_MAXIMIZE As Long = 3

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!