Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datei mit bestimmten Programm öffnen für VBA

Datei mit bestimmten Programm öffnen für VBA
11.11.2006 10:58:54
Klaus
Hallo Leute,
mit folgendem Code öffne ich Bild-Dateien.

Sub ReklaBilder()
Dim Path, ReNr, sPath As String
On Error GoTo ERRORHANDLER
Path = Tabelle18.Cells(13, 11)
ReNr = Tabelle2.Cells(10, 18)
sPath = Path & ReNr & "X-01.jpg"
ActiveWorkbook.FollowHyperlink _
Address:=sPath, _
NewWindow:=True
Exit Sub
ERRORHANDLER:
MsgBox "Keine Bilder vorhanden."
End Sub

Leider werden die Bilder mit dem im Windows zugeordneten Progamm geöffnet.
Das Programm möchte ich aber selbst angeben können.
Wie kann ich das via VBA lösen? Ohne die Windows-Einstellungen zu ändern!!!
Die Recherche hat leider nichts gebracht, oder ich bin blind.
Ich danke Euch schon jetzt für für jeden Ansatz und Eure Mühen.
Gruss Klaus K.
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei mit bestimmten Programm öffnen für VBA
ransi
Hallo
Hilft dir das hier weiter ?


Option Explicit
Public Sub te()
Dim sh
sh = Shell("""C:\WINDOWS\system32\mspaint.exe""" & """Pfad zu deiner Bilddatei""", 3)
End Sub


ransi
Anzeige
AW: Datei mit bestimmten Programm öffnen für VBA
11.11.2006 12:02:08
Reinhard
Moin ransi,
ungetestet, da fehlt doch ein Leerzeichen. Und warum die vielen Gänsefüßchen, weil St Martin ist? :-))
Option Explicit
Public Sub te()
Dim sh
sh = Shell("C:\WINDOWS\system32\mspaint.exe " & "Pfad zu deiner Bilddatei", 3)
End Sub

Gruß
Reinhard
Anzeige
AW: Datei mit bestimmten Programm öffnen für VBA
ransi
HAllo Rheinhard
Erstell dir mal ein Bild 1.JPG (Mit Leerzeichen)
in C:\ !
Dann teste diese 2 mal...


Option Explicit
Public Sub test1()
Dim sh
sh = Shell("C:\WINDOWS\system32\mspaint.exe " & "C:\Bild 1.JPG", 3)
End Sub
Public Sub test2()
Dim sh
sh = Shell("""C:\WINDOWS\system32\mspaint.exe""" & """C:\Bild 1.JPG""", 3)
End Sub


ransi
Anzeige
AW: Datei mit bestimmten Programm öffnen für VBA
11.11.2006 12:46:08
Reinhard
Hallo ransi,
alles klar, danke für die Aufklärung. Da ich versuche diese Gänsefüßchenansammölung zu vermeiden, benutze ich lieber chr(34), also so
Public

Sub test1()
Dim sh
sh = Shell("C:\WINDOWS\system32\mspaint.exe " & Chr(34) & "C:\test\Bild 1.JPG" & Chr(34), 3)
End Sub

und da gibt es das Problem bei Leerzeichen im Namen nihct.
Gruß
Reinhard
Anzeige
AW: Datei mit bestimmten Programm öffnen für VBA
11.11.2006 12:36:01
Klaus
Danke für Eure Hilfe. Ich hab's jetzt so gelöst:

Sub ReklaBilder()
Dim Prog, Path, ReNr, sPath, sh As String
On Error GoTo ERRORHANDLER
Prog = "C:\WINDOWS\system32\rundll32.exe shimgvw.dll,ImageView_Fullscreen "
Path = Tabelle18.Cells(13, 11)
ReNr = Tabelle2.Cells(10, 18)
sPath = Path & ReNr & "X-01.jpg"
sh = Shell(Prog & sPath)
Exit Sub
ERRORHANDLER:
MsgBox "Keine Bilder vorhanden."
End Sub

Dabei wird die Windows Bild und Faxanzeige im Vollbild aufgerufen.
Nochmal Danke und viele Grüsse
Klaus K.
Anzeige
AW: Datei mit bestimmten Programm öffnen für VBA
11.11.2006 12:38:48
Klaus
Hi Reinhard,
ich habe jetzt viel getrickst. Aber es geht entweder nur mit """ oder mit Variable.
Gruss
Klaus
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datei mit bestimmten Programm öffnen in VBA


Schritt-für-Schritt-Anleitung

Um eine Datei mit einem bestimmten Programm über VBA zu öffnen, kannst du den folgenden Code verwenden. Dieser Ansatz stellt sicher, dass du die Windows-Einstellungen nicht ändern musst, und ermöglicht es dir, die gewünschte Anwendung anzugeben.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Sub DateiMitProgrammÖffnen()
    Dim Prog As String
    Dim DateiPfad As String
    Dim sh As Variant

    ' Pfad zum Programm (z.B. Paint)
    Prog = "C:\WINDOWS\system32\mspaint.exe "

    ' Pfad zur Bilddatei
    DateiPfad = "C:\Bild 1.JPG"

    ' Datei mit dem angegebenen Programm öffnen
    sh = Shell(Prog & Chr(34) & DateiPfad & Chr(34), vbNormalFocus)
End Sub
  1. Passe den Prog-Wert und den DateiPfad an deine Bedürfnisse an.
  2. Führe das Makro aus, um die Datei mit dem angegebenen Programm zu öffnen.

Häufige Fehler und Lösungen

  • Fehler: „Datei nicht gefunden“

    • Stelle sicher, dass der Pfad zur Datei korrekt ist. Überprüfe, ob die Datei tatsächlich an dem angegebenen Ort gespeichert ist.
  • Fehler: „Zugriff verweigert“

    • Möglicherweise benötigst du Administratorrechte, um das Programm auszuführen. Stelle sicher, dass du die nötigen Berechtigungen hast.
  • Fehler: Programm öffnet Datei nicht richtig

    • Achte darauf, dass du den Dateinamen in Anführungszeichen (") setzt, insbesondere wenn Leerzeichen im Namen enthalten sind. Verwende Chr(34) für Anführungszeichen in VBA.

Alternative Methoden

Eine andere Methode, um alle Dateien mit einem bestimmten Programm zu öffnen, ist die Verwendung von FollowHyperlink. Dies funktioniert jedoch nur, wenn die Datei- und Programmzuordnungen korrekt in Windows festgelegt sind:

ActiveWorkbook.FollowHyperlink Address:="C:\Bild 1.JPG", NewWindow:=True

Diese Methode öffnet die Datei mit dem Standardprogramm, was nicht immer gewünscht ist, wenn du ein bestimmtes Programm verwenden möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie du den Code anpassen kannst, um verschiedene Dateitypen mit verschiedenen Programmen zu öffnen:

  1. Öffnen eines PDF-Dokuments mit Adobe Reader:
Sub PDFÖffnen()
    Dim Prog As String
    Dim DateiPfad As String
    Prog = "C:\Programme\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe "
    DateiPfad = "C:\Beispiel.pdf"
    Shell(Prog & Chr(34) & DateiPfad & Chr(34), vbNormalFocus)
End Sub
  1. Öffnen eines Bildes mit einem Bildbearbeitungsprogramm:
Sub BildÖffnen()
    Dim Prog As String
    Dim DateiPfad As String
    Prog = "C:\Programme\GIMP 2\bin\gimp-2.10.exe "
    DateiPfad = "C:\Bild1.jpg"
    Shell(Prog & Chr(34) & DateiPfad & Chr(34), vbNormalFocus)
End Sub

Tipps für Profis

  • Verwende Chr(34), um Anführungszeichen zu vermeiden, wenn du Pfade mit Leerzeichen verwendest. Dies hilft, Fehler zu vermeiden.
  • Teste deine VBA-Skripte in einer sicheren Umgebung, bevor du sie in produktiven Arbeitsmappen verwendest.
  • Dokumentiere deinen Code gut, um zukünftige Anpassungen zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich eine Datei mit einem anderen Programm als dem Standardprogramm öffnen? Du kannst den Shell-Befehl verwenden, um eine Datei mit einem spezifischen Programm zu öffnen, indem du den Pfad zum Programm und zur Datei angibst.

2. Was mache ich, wenn das Programm nicht startet? Überprüfe den Pfad zum Programm und zur Datei. Stelle sicher, dass beide korrekt eingegeben sind und dass das Programm auf deinem Computer installiert ist.

3. Kann ich mehrere Dateien gleichzeitig öffnen? Ja, du kannst mehrere Shell-Befehle hintereinander ausführen, um mehrere Dateien mit einem Programm zu öffnen. Achte dabei auf die Reihenfolge und die Pfade.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige