116.「ファイルを参照」ダイアログを表示する

< 使用用途 >
「ファイルを参照」ダイアログを表示する

サンプルソースをダウンロードする方は下記の「ダウンロード」を!
=> ダウンロード・・・下記のソースとおなじです。


 < 説明 >
API関数のSHBrowseForFolder を使用します
SHBrowseForFolder =>「ファイルを参照」ダイアログを表示
  <引数>
     lpBrowseInfo:BROWSEINFO構造体      
  @戻り値@
     キャンセル0 選択した時はそのパスの値


< SAMPLE >

'標準モジュール

Public Declare Function SHBrowseForFolder Lib "shell32.dll" (lpBrowseInfo As BROWSEINFO) As Long

Public Type BROWSEINFO
  hwndOwner As Long
 pidlRoot As Long
 pszDisplayName As String'
 lpszTitle As String
 ulFlags As Long
 lpfn As Long
 lParam As Long
 iImage As Long
End Type

Public Const CSIDL_DESKTOP = &H0
Public Const BIF_CLOSE = &H1


'------------------------------------------------------------------
'■関数名    FolderDlg
'■用途    「ファイルを参照」ダイアログを表示して選択したパスを取得
'■引数     nHwnd:親ウインドウのハンドル
'■戻り値    ファイル、ディレクトリを選択した場合はそのパス名
'        キャンセルした場合はCancel
'------------------------------------------------------------------

Public Function FolderDlg(nHwnd As Long) As String

 Dim BI As BROWSEINFO
 Dim nPath As String
 Dim Ret As Long

With BI
  BI.hwndOwner = nHwnd
  BI.lpszTitle = "フォルダの選択"
  BI.pidlRoot = CSIDL_DESKTOP
  BI.ulFlags = BIF_CLOSE
End With

Ret = SHBrowseForFolder(BI)
nPath = String(256, Chr(0))

If Ret <> 0 Then
  Call SHGetPathFromIDList(Ret, nPath)
 FolderDlg = nPath
Else
 FolderDlg = Cancel
End If

End Function

'ここからはフォームの処理です
Private Sub Command1_Click()
  Dim Path As String
    Path = FolderDlg(Form1.hWnd)

If Path = Cancel Then
   MsgBox "キャンセルを選択"
Else
  MsgBox "パス名: " & Path
End If
End Sub





API 技術関連のページへ戻る

ホーム PV ランキング