set objFile = CreateObject("SAFRCFileDlg.FileOpen") Set objShell = CreateObject("Shell.Application")
本blog里都有示例。
如果调用vb组件,可以是:
flag = &h200 whichone = OpenFile("Choose a File!", "C:/", "Everything|*.*|TextFiles|*.TXT|Word-Documents|*.DOC", 2, flag) MsgBox "Raw data returned: " & whichone ' Split up multi selection result: ' space is used as separator: whichone = Split(whichone, " ") ' field index 0 contains path information: path = whichone(0) ' list all the files: ' how many files were selected? filecount = UBound(whichone) if filecount=0 then ' just one file selected! MsgBox "You selected one file: " & whichone(0) ' check status of Read Only checkbox ' is bit 1 set or cleared? ' works only if just one file was selected! MsgBox "Returned flag: " & flag if (flag and 1) then ' (flag and 1)<>0, transforms to true ' bit is set! MsgBox "ReadOnly selected!" else MsgBox "ReadOnly not selected!" end If ' check whether selected file is of default type (txt) if (flag and 1024) then MsgBox "selected file is no txt file!" else MsgBox "selected file is of default type!" end if else ' more than one file selected! MsgBox "You selected " & filecount & " files!" for x = 1 to UBound(whichone) list = list & path & whichone(x) & vbCr next MsgBox list end If
function OpenFile(title, dir, filter, index, flags) set comdlg = CreateObject("MSComDlg.CommonDialog") comdlg.filter = filter comdlg.FilterIndex = index comdlg.Flags = flags comdlg.MaxFileSize = 260 comdlg.CancelError = false comdlg.DialogTitle = title comdlg.InitDir = dir ' set txt as default comdlg.DefaultExt = "txt" comdlg.ShowOpen OpenFile = comdlg.filename ' important: return flag status so your main script can ' check it: flags = comdlg.Flags end function