'タイトル
Public Title As String
'初期ディレクトリ
Public InitialDirectory As String
'初期ファイル名
Public InitialFileName As String
'[ファイルの種類]の選択肢
Public Filter As String
'[ファイルの種類]の選択値
Public FilterIndex As Integer
'選択したファイル名
Private m_FileName As String
''' <summary>
''' Initializeイベント(コンストラクタ)
''' </summary>
''' <remarks></remarks>
Private Sub Class_Initialize()
Set objFs = CreateObject("Scripting.FileSystemObject")
Call Clear
End Sub
''' <summary>
''' Terminateイベント(デストラクタ)
''' </summary>
''' <remarks></remarks>
Private Sub Class_Terminate()
Set objFs = Nothing
End Sub
''' <summary>
''' 初期化
''' </summary>
''' <remarks></remarks>
Public Sub Clear()
''' <summary>
''' フィルターを設定
''' </summary>
''' <param name="filterArray">フィルター文字列</param>
''' <remarks></remarks>
Public Sub SetFilterList(ParamArray filterArray() As Variant)
Filter = Join(filterArray, ",")
End Sub
''' <summary>
''' 選択したファイル名を取得する。
''' </summary>
''' <remarks></remarks>
Public Function GetSelectedFileName() As String
GetSelectedFileName = m_FileName
End Function
''' <summary>
''' パスとファイル名を結合する。
''' </summary>
''' <param name="path">パス</param>
''' <param name="fileName">ファイル名</param>
''' <returns>結合後のフルパス</returns>
''' <remarks></remarks>
Private Function BuildPath( _
ByVal path As String, _
ByVal fileName As String) As String
BuildPath = objFs.BuildPath(path, fileName)
End Function
''' <summary>
''' ファイル保存ダイアログを開く
''' </summary>
''' <returns>vbOK:ファイル選択、vbCancel:キャンセル</returns>
''' <remarks></remarks>
Public Function ShowDialog() As VbMsgBoxResult
Dim resDlg As Variant
Dim initDir As String
'初期ディレクトリの存在チェック
' 存在しない場合は、Excelブックの配置ディレクトリに置き換える。
If objFs.FolderExists(Me.InitialDirectory) = False Then
Me.InitialDirectory = ThisWorkbook.path
End If
'FileSystemPbject
Private objFs As Object
'WScript.Shell
Private objWs As Object
'タイトル
Public Title As String
'初期ディレクトリ
Public InitialDirectory As String
'[ファイルの種類]の選択肢
Public Filter As String
'[ファイルの種類]の選択値
Public FilterIndex As Integer
'複数選択の可否
Public MultiSelect As Boolean
'選択したファイル名
Private m_FileNames() As String
''' <summary>
''' Initializeイベント(コンストラクタ)
''' </summary>
''' <remarks></remarks>
Private Sub Class_Initialize()
Set objFs = CreateObject("Scripting.FileSystemObject")
Set objWs = CreateObject("WScript.Shell")
Call Clear
End Sub
''' <summary>
''' Terminateイベント(デストラクタ)
''' </summary>
''' <remarks></remarks>
Private Sub Class_Terminate()
Set objFs = Nothing
Set objWs = Nothing
End Sub
''' <summary>
''' 初期化
''' </summary>
''' <remarks></remarks>
Public Sub Clear()
''' <summary>
''' フィルターを設定
''' </summary>
''' <param name="filterArray">フィルター文字列</param>
''' <remarks></remarks>
Public Sub SetFilterList(ParamArray filterArray() As Variant)
Filter = Join(filterArray, ",")
End Sub
''' <summary>
''' 選択したファイル名を取得する。
''' </summary>
''' <remarks></remarks>
Public Function GetSelectedFileNames() As String()
GetSelectedFileNames = m_FileNames
End Function
''' <summary>
''' ファイル選択ダイアログを開く
''' </summary>
''' <returns>vbOK:ファイル選択、vbCancel:キャンセル</returns>
''' <remarks></remarks>
Public Function ShowDialog() As VbMsgBoxResult