フォルダー選択ダイアログ | VBA

いわゆるこういうのを表示するサンプルコードです。

'**********************************************************************
' フォルダー制御
'**********************************************************************

'最後に選択したフォルダー
Private last_select_dir As String

'**********************************************************************
' フォルダー選択ダイアログ
'  input  : ini_dir = 初期表示フォルダー (空だと最後に開いたフォルダーになる)
'           select_dir = [out] 選択したフォルダー
'  return : 0 = 成功
'           1 = キャンセル
'  note   :
'**********************************************************************
Public Function SelectFolder(ini_dir As String, select_dir As String) As Integer

    Dim ret As Integer
    Dim dir As String
    
    '初期表示フォルダーの設定
    If ini_dir = "" Then
        '初期表示フォルダーの指定なし > 前回開いたフォルダー
        If last_select_dir = "" Then
            '初回はExcelファイルのあるフォルダー
            last_select_dir = ThisWorkbook.path
        End If
        dir = last_select_dir
    Else
        dir = ini_dir
    End If

    dir = dir + "\"

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "フォルダーを選択してください"
        .ButtonName = "選択する"
        .InitialFileName = dir
        If .Show = True Then
            ret = 0
            select_dir = .SelectedItems(1)
            last_select_dir = select_dir
        Else
            ret = 1
        End If
    End With
    
    SelectFolder = ret

End Function

コメント

コメントする

CAPTCHA


目次