VB 利用API调用打开和保存文件对话框

 时间:2026-02-13 19:52:43

1、把以下代码添加到标准模块中

窗体中建两个按钮和文本框

一个为Text1,另一个为Text2

Private Sub Command1_Click()

      Text1 = GetDialog("open", "打开文件", "1.xls")

End Sub

Private Sub Command2_Click()

       Text2 = GetDialog("save", "保存文件", "1.xls")

End Sub

2、具体代码 添加到标准模块中

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

Public Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOPENFILENAME As OPENFILENAME) As Long

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

Public Const OFN_OVERWRITEPROMPT = &H2

Public Const OFN_HIDEREADONLY = &H4

Public Const OFN_PATHMUSTEXIST = &H800

Public Const OFN_FILEMUSTEXIST = &H1000

Public Function GetDialog(ByVal sMethod As String, ByVal sTitle As String, ByVal sFileName As String) As String

    On Error GoTo myError

    Dim rtn As Long, pos As Integer

    Dim file As OPENFILENAME

    file.lStructSize = Len(file)

    file.hInstance = App.hInstance

    file.lpstrFile = sFileName & String$(255 - Len(sFileName), 0)

    file.nMaxFile = 255

    file.lpstrFileTitle = String$(255, 0)

    file.nMaxFileTitle = 255

    file.lpstrInitialDir = ""

    file.lpstrFilter = "xls文件(*.xls)" '这个为xls文件

    file.lpstrTitle = sTitle

    If UCase(sMethod) = "OPEN" Then

        file.flags = OFN_HIDEREADONLY + OFN_PATHMUSTEXIST + OFN_FILEMUSTEXIST

        rtn = GetOpenFileName(file)

    Else

        file.lpstrDefExt = "exe"

        file.flags = OFN_HIDEREADONLY + OFN_PATHMUSTEXIST + OFN_OVERWRITEPROMPT

        rtn = GetSaveFileName(file)

    End If

    If rtn > 0 Then

        pos = InStr(file.lpstrFile, Chr$(0))

        If pos > 0 Then

            GetDialog = Left$(file.lpstrFile, pos - 1)

        End If

    End If

    Exit Function

myError:

    MsgBox "操作失败!", vbCritical + vbOKOnly, APP_NAME

End Function

  • 信捷PLC软件XCPPro软件界面的构成。
  • 在EPLAN里面添加桥接电阻
  • 提升工作效率win7设置右键发送到“指定文件夹”
  • led可控硅调光驱动电源芯片SM2082G恒流源方案
  • 如何使用Workbench同时导出库表结构和表数据
  • 热门搜索
    语言的魅力手抄报资料 春天的手抄报大全 知识树手抄报 国学经典手抄报花边 安全小报手抄报内容 平安校园手抄报资料 幼儿手抄报图片 三年级上英语手抄报 幼儿园手抄报图片 圣诞节英语手抄报内容