Ich öffne Dateien =speichere den Pfad und Namen in einem Modul.
Private Const MAX_PATH = 260
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As Long
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As Long
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As Long
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As Long
lCustData As Long
lpfnHook As Long
lpTemplateName As Long
End Type
Private Declare Function GetOpenFileName Lib „comdlg32.dll“ Alias „GetOpenFileNameA“ (pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetSaveFileName Lib „comdlg32.dll“ Alias „GetSaveFileNameA“ (pOpenfilename As OPENFILENAME) As Long
'Private Const OFN_READONLY = &H1
'Private Const OFN_OVERWRITEPROMPT = &H2
'Private Const OFN_HIDEREADONLY = &H4
'Private Const OFN_NOCHANGEDIR = &H8
'Private Const OFN_SHOWHELP = &H10
'Private Const OFN_ENABLEHOOK = &H20
'Private Const OFN_ENABLETEMPLATE = &H40
'Private Const OFN_ENABLETEMPLATEHANDLE = &H80
'Private Const OFN_NOVALIDATE = &H100
'Private Const OFN_ALLOWMULTISELECT = &H200
'Private Const OFN_EXTENSIONDIFFERENT = &H400
Private Const OFN_PATHMUSTEXIST = &H800
Private Const OFN_FILEMUSTEXIST = &H1000
'Private Const OFN_CREATEPROMPT = &H2000
'Private Const OFN_SHAREAWARE = &H4000
'Private Const OFN_NOREADONLYRETURN = &H8000
'Private Const OFN_NOTESTFILECREATE = &H10000
'Private Const OFN_NONETWORKBUTTON = &H20000
'Private Const OFN_NOLONGNAMES = &H40000
Private Const OFN_EXPLORER = &H80000
'Private Const OFN_NODEREFERENCELINKS = &H100000
'Private Const OFN_LONGNAMES = &H200000
’
'Private Const OFN_SHAREFALLTHROUGH = 2
'Private Const OFN_SHARENOWARN = 1
'Private Const OFN_SHAREWARN = 0
Public Function OpenFile(Optional filterstring As String, Optional verzeichnis As String) As String
Dim pOpenfilename As OPENFILENAME
Dim filename$, initDir$, Filter$
Dim L As Long
filename$ = Chr$(0) + Space(MAX_PATH)
If IsMissing(filterstring) Then
Filter$ = „Alle Dateien (*.*)|*.*“
Else
Filter$ = filterstring
End If
If IsMissing(verzeichnis) Then
initDir$ = CurDir
Else
initDir$ = verzeichnis
End If
If Right(Filter, 1) „|“ Then Filter = Filter & „|“
For L = 1 To Len(Filter)
If Mid(Filter, L, 1) = „|“ Then Mid(Filter, L, 1) = Chr$(0)
Next L
Filter = Filter & Chr$(0) & Chr$(0)
With pOpenfilename
.lStructSize = Len(pOpenfilename)
.hwndOwner = Screen.ActiveForm.Hwnd
.lpstrFile = filename
.nMaxFile = MAX_PATH
.lpstrFilter = Filter
.nFilterIndex = 1
.lpstrInitialDir = initDir
.flags = OFN_EXPLORER Or OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST
End With
If GetOpenFileName(pOpenfilename) 0 Then
filename = pOpenfilename.lpstrFile
OpenFile = Left(filename, InStr(filename, Chr$(0)) - 1)
Else
OpenFile = vbNullString
End If
End Function
Angestossen wird die Funktion von Me.DocPfad.Value = Dialog.OpenFile(, GetMyDocumentsDir())
Dein „MsgBox „gibts nicht““ ist dann also strPath=DialogOpenfile(), und den Inhalt von strPath speicherst Du ab.