Dateiauswahl Dialog

03/08/2009 - 11:36 von eas | Report spam
Hallo!!

Welche Möglichkeit gibts denn in Visio einen Dateiauswahl Dialog anzuzeigen?
Ich möchte gerne, daß der Dialog durch einen Button geöffnet wird, der
Bediener soll dann eine Datei (Bild) auswàhlen dürfen.

Der Dateiauswahl-Dialog von Excel hat leider nicht funktionert.

Am Besten wàre, wenn wieder der Pfad geöffnet wird, der zuletzt ausgewàhlt
wurde.

Danke für die Mithilfe!
 

Lesen sie die antworten

#1 eas
05/08/2009 - 09:01 | Warnen spam
Ich hab dann doch beim googeln noch was Brauchbares gefunden. Ich schreibs
herein, falls jemand das gleiche Problem hat:

Public Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Function fkt_FileOpen() As String
'used in call setup
Dim sFilters, sType As String
Dim pos As Integer
Dim OFName As OPENFILENAME
Dim sModul As String

'used after call
Dim buff As String
Dim sLname As String
Dim sSname As String

On Error GoTo Fehler
sFilters = "VB-Dateien (*.frm;*.bas;*.cls)" & vbNullChar & _
"*.frm;*.bas;*.cls" & vbNullChar & _
"Formulardateien(*.frm)" & vbNullChar & "*.frm" & vbNullChar & _
"Basic-Dateien (*.bas)" & vbNullChar & "*.bas" & vbNullChar & _
"Klassendateien (*.cls)" & vbNullChar & "*.cls" & vbNullChar

With OFName
'Setzt die Größe der OPENFILENAME Struktur
.lStructSize = Len(OFName)
'Der Window Handle ist bei VBA fast immer &O0
.hwndOwner = &O0
' Formattyp-Filter setzen
'alle dateien anzeigen ohne Filter
'.lpstrFilter = sFilters
.nFilterIndex = 1
' Buffer für Dateinamen erzeugen
.lpstrFile = sModul & Space$(1024) & vbNullChar & vbNullChar
' Maximale Anzahl der Dateinamen-Zeichen
.nMaxFile = Len(.lpstrFile)
' Buffer für Titel erzeugen
.lpstrFileTitle = Space$(254)
' Maximale Anzahl der Titel-Zeichen
.nMaxFileTitle = 255
' Anfangsverzeichnis vorgeben ODER das zuletzt ausgewàhlte Verzeichnis
'.lpstrInitialDir = "c:\eas"
' Titel des Dialogfester festlegen
.lpstrTitle = "Datei oeffnen"
' Flags zum Festlegen eines bestimmten Verhaltens,
' OFN_LONGNAMES = lange Dateinamen verwenden
'.flags = OFN_LONGNAMES
End With
' API aufrufen und evtl. Fehler abfangen
If GetOpenFileName(OFName) Then
fkt_FileOpen = Left(OFName.lpstrFile, InStr(1, OFName.lpstrFile, Chr(0)) -
1)
ElseIf Err.Number = 0 Then
MsgBox ("Err.Number: " & Err.Number) ' Abbruch durch Benutzer oder Fehler
Err.Clear
End If

Ende:
On Error Resume Next
' Hier finale Anweisungen

Exit Function

Fehler:
ErrNotify Err, "Modulname", "fkt_FileOpen", eNormalError
Resume Ende


End Function
'-
Sub DateiDialog()
Dim sPfad As String
sPfad = fkt_FileOpen
MsgBox "Ausgewàhlte Datei: " & sPfad, vbInformation, "Dateiauswahl"
End Sub

Ähnliche fragen