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でも見て調べてください。

Gポイントポイ活 Amazon Yahoo 楽天

無料ホームページ 楽天モバイル[UNLIMITが今なら1円] 海外格安航空券 海外旅行保険が無料!