FileOpen - FileSave
Die Routinen um Dateien zu öffnen, bzw. abzuspeichern sind sehr ähnlich. Struktur befüllen und Funktion aufrufen.
Nachdem oft geöffnete Dateien auch wieder gespeichert werden sollen, liegt es nahe die Funktionen und Deklarationen in einem Modul zusammen zu fassen.
In ein zweites Modul folgenden Code kopieren:
Option Explicit
Public Const strVersion As String = "V1.0" 'open and save dialogs
Public Const strMakro As String = "Common Dialogs Open/Save"
Sub CATMain()
CDlgInitialize 0& 'no owner
If CDlgOpenDlg(0&) Then MsgBox ofn.lpstrFile 'no owner
If CDlgSaveDlg(0&, "c:\dummy.txt") Then MsgBox ofn.lpstrFile 'no owner
End Sub
Public Function Trim0(sName As String) As String
'if there is one or more trailing /0, trim the string
If InStr(sName, Chr$(0)) Then
Trim0 = Mid$(sName, 1, InStr(sName, Chr$(0)) - 1)
Else
Trim0 = sName
End If
End Function
Um FileOpen oder FileSave aufzurufen ist kein Besitzer-Handle notwendig, kann aber angegeben werden.
Nachdem die Struktur für Öffnen/Speichern sehr ähnlich ist, wurde ein Teil der Zuweisungen in die Routine CDlgInitialize gepackt (ähnlich dem Beispiel in Charles Petzold's Buch).
FileOpen sieht dann so aus ... (je nach Betriebssystem):
... und FileSave so: