EA_SingleFileOpenDlg

機能説明
1ファイルのみ選択可能なファイル選択ダイアログを表示し、選択されたファイルの絶対パスを取得します。

定義
Public Function EA_SingleFileOpenDlg (
ByVal ea_title As String,
ByRef ea_filter() As String,
ByVal ea_filter_idx As Integer,
ByVal ea_root As String,
ByRef ea_path As String
) As Long

引数
ea_title
ダイアログタイトルを設定します。
※デフォルト表示は("":空)を設定
ea_filter
ファイルフィルタを設定します。
※設定情報(二次元配列:[フィルタ名,フィルタ])
※フィルタを設定しない場合、未定義の配列を指定
ea_filter_idx
フィルタインデックスを設定します。
※設定値は(1〜)設定
※フィルタを設定しない場合、値は無視されます。
ea_root
初期表示されるディレクトを設定します。
※("":空)を設定した場合、デフォルトの動作となります。
ea_path
ユーザによって選択されたパスが設定されます。

戻り値
正常:選択されたファイル件数(1)が返却されます。
異常:キャンセルされた場合に(0)が返却されます。

使用例1
タイトル・初期表示フォルタ・ファイルフィルタを設定してダイアログを開く場合は、下記のように関数を呼び出してください。
                                    
Sub Main()
    Dim ea_root As String
    Dim ea_path As String
    Dim ea_fcnt As Integer
    ea_root = "c:¥"
    ea_fcnt = funcOpenFileDlgSingle(ea_root, ea_path)
    MsgBox "選択件数:" & ea_fcnt & vbCrLf & "選択パス:" & ea_path
End Sub

Function funcOpenFileDlgSingle(ByVal ea_root As String, ByRef ea_path As String) As Integer
    Dim res As Integer
    Dim ea_filter(1, 1) As String
    funcOpenFileDlgSingle = -1
    'ファイル選択ダイアログのフィルタ設定
    ea_filter(0, 0) = "エクセルファイル"
    ea_filter(0, 1) = "*.xlsx;*.xlsm"
    ea_filter(1, 0) = "すべてのファイル"
    ea_filter(1, 1) = "*.*"
    'ファイル選択ダイアログの表示(Single選択)
    res = EA_SingleFileOpenDlg("設定ファイルを開く", ea_filter, 1, ea_root, ea_path)
    funcOpenFileDlgSingle = res
End Function
                                    
                                
使用例2
デフォルトの状態でダイアログを開く場合は、下記のように関数を呼び出してください。
                                    
Sub Main()
    Dim ea_path As String
    Dim ea_fcnt As Integer
    ea_fcnt = funcOpenFileDlgSingle(ea_path)
    MsgBox "選択件数:" & ea_fcnt & vbCrLf & "選択パス:" & vbCrLf & ea_path
End Sub

Function funcOpenFileDlgSingle(ByRef ea_path As String) As Integer
    Dim res As Integer
    Dim ea_filter() As String
    funcOpenFileDlgSingle = -1
    'ファイル選択ダイアログの表示(Single選択)
    res = EA_SingleFileOpenDlg("", ea_filter, 1, "", ea_path)
    funcOpenFileDlgSingle = res
End Function
                                    
                                

クラウドソーシング「ランサーズ」