📄 openfile.bas
字号:
Attribute VB_Name = "OpenFileDlg"
Option Explicit
Private Type OPENFILENAME
lStructSize As Long
hWndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCusFilter 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
Private OFN As OPENFILENAME
Private Const OFN_FILEMUSTEXIST = &H1000
Private Const OFN_HIDEREADONLY = &H4
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (lpOFN As OPENFILENAME) As Long
Private Declare Function VarPtr Lib "VB40032.DLL" (lpVar As Any) As Long
Public hWndOwner As Long
Public FileName As String
Public Filter As String
Public Title As String
Sub Show()
Dim iNull As Integer
Dim sFilter As String
Dim sNull As String
Dim sTitle As String
Dim sFileName As String * 1024
LSet sFileName = FileName & vbNullChar
With OFN
.lStructSize = Len(OFN)
.hWndOwner = hWndOwner
.lpstrFilter = Filter
.lpstrFile = sFileName
.nMaxFile = Len(sFileName)
.lpstrTitle = Title
.Flags = OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY
End With
If GetOpenFileName(OFN) Then
iNull = InStr(OFN.lpstrFile, vbNullChar)
If iNull Then
FileName = Left$(OFN.lpstrFile, iNull - 1)
Else
FileName = OFN.lpstrFile
End If
Else
FileName = ""
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -