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