vba使用win32 API(GetOpenFileName )实现打开文件对话框

<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>
使用网上比较普遍的vb中使用WindowsAPI实现打开文件对话框代码,

Declare
Function GetOpenFileNameLib " comdlg32.dll " Alias_
" GetOpenFileNameA " (pOpenfilename As OPENFILENAME) As Long

TypeOPENFILENAME
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

调用代码

Sub t()
Dim ofn As OPENFILENAME
Dim rtn As String

ofn.lStructSize
= Len (ofn)
ofn.hwndOwner
= Application.hWnd
' ofn.hInstance=Application.hInstance
ofn.lpstrFilter = " XMLFiles(*.xml) " & Chr ( 0 ) & " *.xml " & Chr ( 0 )
ofn.lpstrFile
= Space ( 254 )
ofn.nMaxFile
= 255
ofn.lpstrFileTitle
= Space ( 254 )
ofn.nMaxFileTitle
= 255
ofn.lpstrInitialDir
= " C: "
ofn.lpstrTitle
= " 打开文件 "
ofn.flags
= 6148

rtn
= GetOpenFileName(ofn)

If rtn >= 1 Then
MsgBox ofn.lpstrFile
Else
MsgBox " CancelWasPressed "
End If

EndSub




Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1856201


你可能感兴趣的:(xml,.net,vb,VBA,VB.NET)