【VBA】 ファイルを開くダイアログを使用して複数ファイルパスを取得する

ファイルを開くダイアログを表示して、ファイルフルパスを取得します。複数ファイルを選択可能です。

関数概要

  • 関数名: FNCGetOpenFilePathMulti
  • 入力引数; P_IN_InitialFilePath ( String 型) : ファイルを開くダイアログの初期フォルダを指定します。
  • P_IN_FiltersName ( String 配列型) : 開くファイルの種類をフィルタリングする名前を指定します。
  • P_IN_FilterExt ( String 配列型) : 開くファイルの種類をフィルタリングする拡張子を指定します。
  • 出力引数: P_OUT_OpenFilePath ( String 配列型) : ダイアログで選択されたファイルのフルパスが設定されます。
  • 返り値:リターンコードが返却されます。

実行例

  • 準備中

ダウンロード

UsefulEdgeではよく使うVBA処理を共通クラスとして提供しています。

以下からダウンロードが可能です。

UEVBACommonClass.cls

使用方法

  • 準備中

ソースコード


'-----------------------------------------------------------------
' ファイルを開くダイアログを使用して複数ファイルパスを取得する
'-----------------------------------------------------------------
Function FNCGetOpenFilePathMulti(P_IN_InitialFilePath As String, P_IN_FiltersName() As String, P_IN_FilterExt() As String, ByRef P_OUT_OpenFilePath() As String) As Integer
On Error GoTo ErrorHandler
    FNCGetOpenFilePathMulti = Me.ReturnError
    Dim ObjFileDialog As Object
    Dim StrFileName() As String
    Dim i As Integer
    Set ObjFileDialog = Application.FileDialog(msoFileDialogOpen)
    ObjFileDialog.InitialFileName = P_IN_InitialFilePath
    ObjFileDialog.Filters.Clear
    For i = 0 To UBound(P_IN_FiltersName)
        ObjFileDialog.Filters.Add P_IN_FiltersName(i), P_IN_FilterExt(i)
    Next i
    ObjFileDialog.FilterIndex = 1
    ObjFileDialog.AllowMultiSelect = True
    If ObjFileDialog.Show Then
        For i = 1 To ObjFileDialog.SelectedItems.Count
            ReDim Preserve StrFileName(i)
            StrFileName(i) = ObjFileDialog.SelectedItems(i)
        Next i
        FNCGetOpenFilePathMulti = Me.ReturnNomal
    Else
        FNCGetOpenFilePathMulti = Me.ReturnWarning
    End If
    P_OUT_SaveAsFilePath = StrFileName()
    Exit Function
ErrorHandler:
    MsgBox Err.Number & ":" & Err.Description, vbCritical, "エラー"
    FNCGetOpenFilePathMulti = Err.Number
    Exit Function
End Function

ソースコード説明

  • 準備中
[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

ExcelVBAを実務で使い倒す技術 [ 高橋宣成 ]
価格:1944円(税込、送料無料) (2019/7/23時点)

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です