06-04-2008, 20:44
Forumda çok güzel projeler inceleme imkanı buluyorum. Fakat dosya açma diyaloğuyla ilgili epeyce sıkan API ye alternatif yolu önermek istiyorum.
Sadece "Aç" değil "Kaydet", "Renk", "Font" diyalogları da çağırılabilir. Elbette diğer argumanları nesneyi CreateObject ile çağırdığınızda göremezsiniz.
İlgili referans dosyası "COMDLG32.OCX" tir.
Sadece "Aç" değil "Kaydet", "Renk", "Font" diyalogları da çağırılabilir. Elbette diğer argumanları nesneyi CreateObject ile çağırdığınızda göremezsiniz.
İlgili referans dosyası "COMDLG32.OCX" tir.
Kod:
Sub Test()
Set dlg = CreateObject("MSComDlg.CommonDialog")
'// Filter syntax: İsim |filtre|
strFilter = "Access dosyası (*.mdb)|*.mdb|"
strFilter = strFilter & "Excel dosyaları (*.xls)|*.xls|"
strFilter = strFilter & _
"Resim dosyaları (*.bmp,*.jpg,*.gif)|*.bmp;*.jpg;*.gif|"
strFilter = strFilter & "Tüm dosyalar (*.*)|*.*|"
With dlg
.DialogTitle = "Dosya seçiniz..." '// Başlık
.InitDir = "C:\" '// Varsayılan konum
.Flags = 4 '// Saltokunur seçeneği disable olur
.Filter = strFilter
.FilterIndex = 4 '// Yukarıdaki filtrelerin varsayılanı.(Tüm dosyalar)
.ShowOpen
If .Flags = 4 Then Exit Sub '// İptal tuşuyla sonlandır
End With
MsgBox dlg.Filename
End Sub