EA_MultiFileOpenDlg

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

定義
Public Function EA_MultiFileOpenDlg (
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 = funcOpenFileDlgMulti(ea_root, ea_path)
    MsgBox "選択件数:" & ea_fcnt & vbCrLf & "選択パス:" & vbCrLf & EA_ArrayToTxt(ea_path, vbCrLf)
End Sub

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

Function funcOpenFileDlgMulti(ByRef ea_path() As String) As Integer
    Dim res As Integer
    Dim filter() As String
    funcOpenFileDlgMulti = -1
    'ファイル選択ダイアログの表示(複数選択)
    res = EA_MultiFileOpenDlg("", filter, 1, "", ea_path)
    funcOpenFileDlgMulti = res
End Function
                                    
                                

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