Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
676to680
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
676to680
676to680
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Grafikdatei aus Excel in Standardanwendung öffnen

Grafikdatei aus Excel in Standardanwendung öffnen
07.10.2005 15:56:16
kgurr
Hallo!
Ich möchte über Excel verschiedene Dateien mit der in Windows eingestellten Standardardanwendung in der entsprechenden Anwendung öffnen.
Z.B. eine Grafikdatei "Bild.gif" möchte ich mit dem Photoshop öffnen.
Dabei weiß ich nicht immer, was die Standardanwendung für den Dateityp auf dem Rechner ist. Am liebsten möchte ich nur den Pfadnamen mit Dateinamen übergeben und dann soll die Anwendung geöffnet werden.
Ich habe schon gesucht, bin aber nicht fündig geworden, über welchen Befehl dies möglich ist ...
Danke für die Unterstützung,
kgurr

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Grafikdatei aus Excel in Standardanwendung öff
07.10.2005 16:17:34
Matthias
Hallo kgurr,
in ein Standardmodul:

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
Sub Oeffnen(Pfad As String)
ShellExecute Application.hwnd, "Open", Pfad, _
vbNullString, vbNullString, vbNormalFocus
End Sub

Anwendung z.B.:
Oeffnen "C:\test\Bild.gif"
Gruß Matthias
AW: Grafikdatei aus Excel in Standardanwendung öff
07.10.2005 17:04:21
kgurr
Hallo Mattias G.,
danke für die schnelle Nachricht. Habe das ganze probiert und stosse auf einen Laufzeitfehler in der Prozedur "Oeffnen":
"Laufzeitfehler 438 - Objekt unterstüzt diese Eigenschaft oder Methode nicht"
Die Art der Prozedur ist mir nicht bekannt, und weiß nicht wonach ich suchen soll ...?
Der übergebene Pfad sollte richtig sein. Hast Du mir einen Tipp?
Danke,
kgurr
Anzeige
AW: Grafikdatei aus Excel in Standardanwendung öff
07.10.2005 19:49:58
Matthias
Hallo kgurr,
versuch mal nur
MsgBox Application.hWnd
Ich fürchte, das gibt es erst ab Excel XP :-(
Gruß Matthias
AW: Grafikdatei aus Excel in Standardanwendung öff
07.10.2005 20:47:06
MichaV
Hallo,
jo, geht nicht in XL2000. Schreib anstelle von Application.hWnd einfach eine 0
Gruß- Micha
PS: Rückmeldung wäre nett.
AW: Grafikdatei aus Excel in Standardanwendung öff
07.10.2005 20:58:12
kgurr
Hallo Matthias,
stimmt: das Problem tritt in Excel-2000 auf.
Ich habe Deine Vorschlag getestet und der funktioniert auch. Wofür ist die Anweisung "Application.hWnd" wichtig?
In jedem Fall Merci,
kgurr
AW: Grafikdatei aus Excel in Standardanwendung öff
07.10.2005 21:34:50
MichaV
Hallo,
http://www.vbfun.de/vb/api/ShellExecute.htm
Application.hWnd ist die Nummer des aufrufenden Fensters, die Du natürlich auch mit GetActiveWindow() ermitteln kannst (Vorschlag von Matthias). Wofür man diese Nummer dem aufzurufendem Programm mitgeben kann? Keine Ahnung. Du musst es ja auch nicht tun, mit 0 gehts schließlich auch. Dann weiß das aufzurufende Programm nur leider nicht, durch wen es aufgerufen wurde :o(
Gruß- Micha
Anzeige
AW: Grafikdatei aus Excel in Standardanwendung öff
07.10.2005 20:47:50
kgurr
Hallo Matthias,
dadurch dass ich von Dir eine "Vorlage" hatte konnte ich ein wenig stöbern.
Zunächst scheint diese ein Fehler zu sein, der bei manchen XP-Systemen auftritt. Mit Deinem Code hatte ich auf meinem Rechner ein Problem, auf einem anderen XP-System keines.
Weiter bin ich auf den folgenden VBA-Code gestossen, bei dem der Fehler - zum Glück - nicht mehr auftritt:
***
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
Declare 

Function GetActiveWindow Lib "user32.dll" () As Long

Sub Oeffnen(dateiname As String)
Dim hwnd As Long
hwnd = GetActiveWindow()
ShellExecute hwnd, "open", dateiname, "", "", 1 '3 statt 1 bedeutet Maximiert-öffnen
End Sub


Sub Test()
Oeffnen "C:\grafik.gif"
End Sub

***
Herzlichen Dank für Deine Unterstützung, Gruss
kgurr

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige