TechnicalLibrary
No5.APIを使ってファイルを開くダイアログを表示
コモンダイアログは、CommonDialogコントロールを利用すると簡単に
扱う事ができるのですが、アプリを配布すめ際コントロールも配布しなくては
ならないという欠点があります。
そこでAPIを利用してファイルを開くダイアログを表示してみましょう。
<まずはAPI宣言>
'ファイルを開くダイアログを表示するAPI
Declare Function GetOpenFileName Lib "comdlg32.dll" _
Alias "GetOpenFileNameA" _
(pOpenfilename As OPENFILENAME) As Long
'利用する定数
Public Type OPENFILENAME
lStructSize As Long 'この構造体の長さ
hwndOwner As Long '呼び出し元ウインドウハンドル
hInstance As Long
lpstrFilter As String 'フィルタ文字列
lpstrCustomFilter As String
nMaxCustrFilter As Long
nFilterIndex As Long
lpstrFile As String '選択されたファイル名のフルパス
nMaxFile As Long 'lpstrFileのバッファサイズ
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String '初期フォルダ名
lpstrTitle As String 'コモンダイアログのタイトル名
flags As Long 'フラグ
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String 'ファイル名の入力時、拡張子が省略された時の拡張子
lCustrData As Long
lpfnHook As Long
lpTemplateName As String
End Type
<実際に呼び出す>
Dim GetFileOpenName as OPENFILENAME
Dim lngRet as Long
With GetFileOpenName
.lStructSize = Len(GetFileOpenName)
End With
lngRet = GetOpenFileName(GetFileOpenName)
最低限これだけで動きます。
フィルタ文字列の例です。
lpstrFilter = "All Files" & vbNullChar & "*.*" & vbNullChar
"*.mp3;*.wav;*.mid"のようにする事も可能です。
まぁ、こんなところでしょうか。
途中OPENFILENAMEには引数がたくさんあるのですが、全然説明していません。
MSDN Libraryでも見て調べてください。