Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1872to1876
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Per VBA Datei öffnen
04.03.2022 17:07:07
Günther
Hallo in die Expertenrunde,
ich habe eine kleine Frage zu dem Öffnen einer Datei per VBA mittels SHELL und CMD unter der Rahmenbedingung, dass der Dateiname ein & enthält.

shell "cmd /C ""C:\temp\A und B.pdf""" 'funktioniert
shell "cmd /C ""C:\temp\A & B.pdf""" 'funktioniert nicht
Gibt es einen Weg, dies ohne voriges Umbenennen der Datei zu lösen? Wenn ja, wie?
Danke im Voraus für alle Rückmeldungen.
Grüße
Günther

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Datei öffnen
05.03.2022 08:13:01
Peter
Aus anderen Zusammenhängen kenne ich, dass man manchmal das "&" verdoppeln muss! Teste mal!
AW: Per VBA Datei öffnen
04.03.2022 17:25:33
Nepumuk
Hallo Günther,
versuch es so:

Option Explicit
Private Declare PtrSafe Function ShellExecuteA Lib "shell32.dll" ( _
ByVal hwnd As LongPtr, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As LongPtr
Private Const SW_MAXIMIZE As Long = 3
Public Sub Test()
ShellExecuteA 0, "OPEN", "C:\temp\A & B.pdf", vbNullString, vbNullString, SW_MAXIMIZE
End Sub
Gruß
Nepumuk
Anzeige
AW: Per VBA Datei öffnen
04.03.2022 22:06:58
Günther
Danke Nepumuk - funktioniert bestens - es ist immer ein Vergnügen, vom Profi zu lernen ...
Grüße
Günther
AW: Per VBA Datei öffnen
06.03.2022 15:36:44
Günther
Hallo Nepumuk,
ich habe mich leider zu früh gefreut :-(
Die Lösung mit ShellExecuteA lässt sich zwar von &-Zeichen nicht beirren, dafür werden aber Unicode-Zeichen im Dateinamen nicht unterstützt.
(Mein bevorzugtes Unicode-Testzeichen ist ≤ oder ≥ .)
Selbiges ist wiederum für die Shell/CMD-Variante kein Problem.
Sollte ein Dateiname aber &-Zeichen UND Unicode-Zeichen beinhalten, geht keine der beiden Varianten ... :-(
Kennst Du noch eine Alternative?
Viuele Grüße und Danke
Günther
Anzeige
AW: Per VBA Datei öffnen
06.03.2022 17:04:58
Nepumuk
Hallo Günther,
dann versuch es so:

Option Explicit
Private Declare PtrSafe Function ShellExecuteW Lib "shell32.dll" ( _
ByVal hwnd As LongPtr, _
ByVal lpOperation As LongPtr, _
ByVal lpFile As LongPtr, _
ByVal lpParameters As LongPtr, _
ByVal lpDirectory As LongPtr, _
ByVal nShowCmd As Long) As LongPtr
Private Const SW_MAXIMIZE As Long = 3
Public Sub Test()
Dim strFilename As String
strFilename = Dir("C:\temp\*.pdf")
ShellExecuteW 0, StrPtr("OPEN"), StrPtr("C:\temp\Test" & ChrW$(&H2264) & ".pdf"), 0, 0, SW_MAXIMIZE
End Sub
Meine Testdatei hat den Namen: Test≤.pdf
Gruß
Nepumuk
Anzeige
AW: Per VBA Datei öffnen
07.03.2022 09:25:15
Günther
Hallo Nepumuk,
Danke Dir - funktioniert super!
Grüße Günther
AW: Per VBA Datei öffnen
06.03.2022 17:31:30
Anton
Hallo Günther ,
probier es so:

Sub b()
  Dim pfad As String  
  pfad = Range("A1")  'Pfad in Zelle A1 speichern
  CreateObject("Shell.Application").ShellExecute pfad, "", "", "open", 1
End Sub  

mfg Anton
Anzeige
AW: Per VBA Datei öffnen
07.03.2022 09:24:07
Günther
Hallo Anton,
Danke Dir - funktioniert super!
Grüße Günther

331 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige