Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1076to1080
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

Dateiauswahldialog-Öffnen-Speichern win32-API

Dateiauswahldialog-Öffnen-Speichern win32-API
27.05.2009 13:53:21
Werner
Hallo Excel Gemeinde,
ich bin durch Tino auf die
Win32-API Auswahldialogmethode gestoßen.
Vielen Excel-Usern mag dieses Thema bekannt sein, aber für diejenigen, die sich mit dem Thema:
Öffnen und Speichern von Dateien aus Excel heraus beschäftigen, lade ich nachfolgende Beispieldatei einmal hoch.
Die hervoragende VBA-Syntax kommt von Mathias Schiffer,
der u.a. für das MSDN (Microsoft Developer Network) als freier Technologievermittler und Entwickler, Beiträge herausgibt.
http://msdn.microsoft.com/de-de/library/bb979268(loband).aspx
Hier nun die Datei, nebst Beschreibungen der Flags in der Tabelle "Beschreibung"
https://www.herber.de/bbs/user/62072.xls
Vielen Dank an dieser Stelle auch noch mal an Tino.
Gruß
Werner B.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiauswahldialog-Öffnen-Speichern win32-API
27.05.2009 15:00:44
Luschi
Hallo Werner,
die von Dir verwendete Syntax entspricht aber in einigen Passagen nicht dem Original von Mathias Schiffer.
Und deshalb kommt es Merkwürdigkeiten.
- zuerst Datei Speichern
- dann kommt ja gleich Datei einlesen (öffnen)
- und jetzt beginnen die Schwierigkeiten
- Weder mit Abbrechen noch Öffnen kann man aus dem Auswahlmenü aussteigen
Und liegen tut es daran:
GetOpenName = Left$(OFN.lpstrFile, lNullPos - 1)
..
..
If Mid$(GetOpenName, PathLen, 1) = "\" Then Exit For
Mit der 1. Anweisung wird der Funktion 'GetOpenName' ein Rückgabewert zugeordnet. Das ist korrekt und das zeichnet Funktionen ja aus gegenüber normalen Sub-Prozeduren. Und nur in diesem Konstrukt wird der Rückgabewert festgelegt.
In der 2. Anweisung, die ein paar Zeilen darunter liegt, verwendest Du aber nicht nicht den Rückgabewert der Funktion, sondern die Funktion selbst wird wieder aufgerufen.
Da alle Übergaeparameter optional sind und einen Standardwerd haben, kommt es zu keiner Fehleranzeige, denn der Aufruf ist gültig.
Will man den Rückgabewert einer API-Funktion verwenden, dann muß man den Wert erst in eine neutrale Variable setzen und erst zum Schluß der eigenen Funktion den ausgewerteten Variablenwert zuordnen.
meineVariable = Left$(OFN.lpstrFile, lNullPos - 1)
If Mid$(meineVariable, PathLen, 1) = "\" Then Exit For
meineVariable = ...
GetOpenName=meineVariable
Gruß von Luschi
aus klein-Paris
Anzeige
Rückgabewert einer API-Funktion
27.05.2009 15:06:41
Werner
Hallo Luschi,
wieder etwas dazu gelernt!
Vielen Dank dafür, werde ich sofort umsetzen!
Gruß
Werner

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige