Const MAX_PATH = 260 ' ファイルパス長
Const OFN_FILEMUSTEXIST = &H1000 ' 既存のファイルだけ入力できるようにする
Const OFN_HIDEREADONLY = &H4 ' 読み取り専用チェックボックスを表示しない
Type OPENFILENAME
lStructSize As Long ' この構造体の長さ
hWndOwner As Long ' 呼び出し元ウインドウハンドル
hInstance As Long ' モジュールのインスタンスハンドル
lpstrFilter As String ' フィルタ文字列
lpstrCustomFilter As String ' ユーザー定義のフィルタ文字列のペア
nMaxCustrFilter As Long ' lpstrCustomFilterのバッファサイズ
nFilterIndex As Long ' フィルタコンボボックスの初期インデックス値
lpstrFile As String ' 選択されたファイル名のフルパス
nMaxFile As Long ' lpstrFileのバッファサイズ
lpstrFileTitle As String ' 選択されたファイル名のタイトル
nMaxFileTitle As Long ' lpstrFileTitleのバッファサイズ
lpstrInitialDir As String ' 初期フォルダ名
lpstrTitle As String ' ダイアログボックスのタイトル名
flags As Long ' Flagsの値
nFileOffset As Integer ' lpstrFileの最後の \までのオフセット値
nFileExtension As Integer ' 拡張子までのオフセット値
lpstrDefExt As String ' ファイル名の入力時、拡張子が省略された時の拡張子
lCustrData As Long ' OSがlpfnHookで指定されたフック関数に渡すアプリケーション定義のデータ
lpfnHook As Long ' ダイアログに送られるメッセージを処理するフック関数のポインタ
lpTemplateName As String
End Type
'------------------------------------------------------------------------------
' ファイル開くダイアログ(宣言)
'------------------------------------------------------------------------------
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" _
(pOpenfilename As OPENFILENAME) As Long
Dim l_ret As Long ' 戻り値
Dim st_path As String ' デスクトップパス
Dim o_comdlg As OPENFILENAME ' コモンダイアログ構造体
' エラー設定を無効にする
On Error GoTo 0
' 構造体の長さを設定
o_comdlg.lStructSize = Len(o_comdlg)
' 呼び出し元フォームのウインドウハンドルを設定
o_comdlg.hwndOwner = Form1.hWnd
' モジュールのインスタンスハンドルを設定
o_comdlg.hInstance = App.hInstance
' フィルタ文字列を設定
o_comdlg.lpstrFilter = ""
' lpstrCustomFilterのバッファサイズを設定
o_comdlg.nMaxCustrFilter = 0
' フィルタコンボボックスの初期インデックス値を設定
o_comdlg.nFilterIndex = 0
' 選択されたファイル名のフルパスを設定
o_comdlg.lpstrFile = String$(MAX_PATH, Chr$(0))
' lpstrFileのバッファサイズを設定
o_comdlg.nMaxFile = MAX_PATH
' 選択されたファイル名のタイトルを設定
o_comdlg.lpstrFileTitle = String$(MAX_PATH, Chr$(0))
' lpstrFileTitleのバッファサイズを設定
o_comdlg.nMaxFileTitle = MAX_PATH + 1
' 初期フォルダ名を設定
o_comdlg.lpstrInitialDir = "C:\" & String$(MAX_PATH - 3, Chr$(0))
' ダイアログボックスのタイトル名を設定
o_comdlg.lpstrTitle = "ファイルを開く"
' Flagsの値を設定
o_comdlg.flags = OFN_HIDEREADONLY Or OFN_FILEMUSTEXIST
' ファイル名の入力時、拡張子が省略された時の拡張子を設定
o_comdlg.lpstrDefExt = ""
' ダイアログを表示する
l_ret = GetOpenFileName(o_comdlg)
' ファイル選択が確定された場合
If (l_ret <> 0) Then
' 選択ファイルを表示します
MsgBox o_comdlg.lpstrFile
End If
|