Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1092to1096
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
Inhaltsverzeichnis

API ShellExecute bzw. eine Doc starten

API ShellExecute bzw. eine Doc starten
Reinhard
Hallo Wissende,
ich möchte eine Word-Datei per Excel-Vba öffnen. Und dies auf Fremdrechnern. Man weiß also nicht wo die word.exe (winword.exe?) steckt. Erschwerend kommt dazu, es ist gar nicht gesagt daß dort Word vorhanden ist, kann auch OpenOffice sein.
M.E. scheidet dadurch "Shell" aus.
Jetzt kannte ich aber die API-Funktion "ShellExecute" und dachte der langt der Doc-Dateiname.
Aber Pustekuchen, ich stehe staunend vor
http://support.microsoft.com/kb/238245/de
bzw. dem nachfolgenden Code.
Was bedeutet denn da bitteschön "OPUSAPP"? U.v.m.
Wie könnte man die Problematik lösen?
Danke ^ Gruß
Reinhard
Hier der Code von MS:
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 apiFindWindow Lib "User32" Alias "FindWindowA" _
(ByVal lpclassname As Any, ByVal lpCaption As Any) As Long
Global Const SW_SHOWNORMAL = 1
Sub ShellExecuteExample()
Dim hwnd
Dim StartDoc
hwnd = apiFindWindow("OPUSAPP", "0")
StartDoc = ShellExecute(hwnd, "open", "C:\My Documents\Book1.xls", "", _
"C:\", SW_SHOWNORMAL)
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: API ShellExecute bzw. eine Doc starten
11.08.2009 19:35:05
Hajo_Zi
Hallo Reinhard,
vielleicht hilft das
Datei öffnen Word, Powerpoint oder sonstwas
Option Explicit
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 Open_File(strFileName As String, windowType As Integer)
ShellExecute 0, "Open", strFileName, "", "", windowType
End Sub

Sub test()
'1 = vbNormalFocus
'2 = Minimized
'3 = Maximized
Open_File "c:\DeineDatei.txt", 1
End Sub

‘ von Ramses Rainer
http://clever-forum.de/read.php?11,128213,128217#msg-128217

Anzeige
pre-Ende ergänzt
11.08.2009 20:57:51
Erich



Datei mit Standardprogramm öffnen
11.08.2009 19:47:10
Tino
Hallo,
um eine Datei mit dem im Windows dafür vorgesehenen Programm zu öffnen,
kannst Du es so machen.
Hier ein Word- Dokument
Option Explicit
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

Sub beliebigeDateiÖffnen()
Dim strPfad As String
Const SW_MAXIMIZE = 3      ' Maximiert öffnen 
Const SW_MINIMIZE = 6      ' Minimiert öffnen 
Const SW_NORMAL = 1        ' Normal öffnen 

strPfad = "C:\Datei.doc" 'Pfad u. Dateiname 

Call ShellExecute(0, "open", strPfad, "", "", SW_MAXIMIZE)

End Sub
Gruß Tino
Anzeige
AW: Datei mit Standardprogramm öffnen
11.08.2009 21:30:40
Stefanglander
Hallo Tino,
wo gehört dieser Code hin?
In VBA in Tabelle1?
Ich bekomme eine Fehlermeldung: Fehler beim kompilieren. Konstanten, Zeichenfolgen fetser länge.....
Kannst Du helfen ?
Gruss
Stefan
Funktion kommt in ein Modul.
11.08.2009 21:52:48
Tino
Hallo,
die Function ShellExecute muss in einem Modul stehen.
Die andere Sub kann überall in der Datei sein.
Gruß Tino
Danke Dir, (o.T.)
11.08.2009 22:02:47
Stefanglander
.
OpusApp
11.08.2009 20:00:46
Erich
Hi Reinhard,
so ganz dumm ist das MS-Beispiel nicht: Es schaut zunächst, ob Word offen ist
(FindWindow liefert dann ein Handle ungleich 0.)
Wenn ja, wird das Dok. in diesem Fenster geöffnet.
OpusApp ist der Name der Fensterklasse für Word/Winword (seit Word für Windows 1.0 unverändert).
Google doch mal OpusApp, da findest du z. B.
http://entwickler-forum.de/showthread.php?t=21744
http://www.dbwiki.de/wiki.php?title=VBA_Tipp:_Anwendungsfenster_z%E4hlen
(dort auch: Die Klassennamen einiger gängiger Applikationen sind:...")
Da klappt so natürlich nicht bei OpenOffice - das wird immer neu gestartet - hwnd ist 0.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S.: War die Antwort in https://www.herber.de/forum/messages/1094334.html ok?
Anzeige
Farb RGB Werte von zeilen Spaltenüberschriften
11.08.2009 21:07:51
zeilen
Hallo Erich,
*schäm*, ja die Rückmeldung an dich und Tino fehlt da noch :-(
Die Anfragerin war hochzufrieden mit meiner Lösung die Tabelle zu drehen.
Okay, sie wollte dann auf einmal nicht linksrum sondern rechtsrum gedreht haben. kein Akt, habe ich gebastelt.
Dann nochwas, weiß gar nicht mehr, jedenfalls auch gelöst.
Insofern ist das Problem vom Tisch.
Als Restproblem verbleibe ich. Ich w+rde schon gern wissen welche RGB-Werte die Zeilen/Spalten-Überschriften haben.
Ja, ich sagte grau, das wars wohl nicht. Naja, meinen farbangaben ist nicht zu trauen :-)
Andrerseits habe ich massig andere ungelöste Excelfragen/-Unklarheiten im Kopf.
Wenn ich jetzt die RGB-Werte kennen würde so wäre das kein großer Schritt für die menschheit und für mich auch nicht :-)
Verschieben wir also die farbwerte bis auf den tag wo ich sie sie wirklich brauche.
Danke
Reinhard
Anzeige
Ich bedanke mich sehr für alle Antworten o.w.T
11.08.2009 21:27:55
Reinhard

wscript.Shell
11.08.2009 22:29:13
Uduuh
Hallo,
alternativ:
CreateObject("wscript.shell").run "c:\test1.doc"
Gruß aus’m Pott
Udo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige