2017年6月2日

【Excel】ファイル選択ダイアログボックスを開く


ファイル選択ダイアログボックスを開く方法です。

前回、『テキストファイルから読み込んだデータをセルに格納するマクロ』を改造して、ファイル選択ダイアログからファイルを選択してデータを読み込んでみます。



シートに[読込]ボタンを設置し、Clickイベントハンドラに次のように記述します。

Sub button1_Click()

    Dim i As Integer
    Dim bufStr As String
    Dim filePath As String
    Dim fd As FileDialog
    
    'ファイル選択ダイアログボックス
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    With fd
        'ファイルの複数選択を不可
        .AllowMultiSelect = False
        
        'タイトル
        .Title = "テキストファイル"
        
        'ファイルフィルタのクリア
        .Filters.Clear
        
        'ファイルフィルタの設定
        .Filters.Add "テキストファイル ", "*.txt"

        '初期表示のフォルダ
        .InitialFileName = ""
        
        If .Show = True Then
            'ファイルパスの取得
            filePath = .SelectedItems(1)
        Else
            'キャンセル
            Exit Sub
        End If
    End With

    'ファイルのオープン
    Open filePath For Input As #1
    
    i = 2
    
    Do While Not EOF(1)
    
        'ファイルから一行読込む
        Line Input #1, bufStr
        
        '読み込んだデータをセルに格納
        Cells(i, 2).Value = bufStr
        
        i = i + 1
    Loop
    
    'ファイルを閉じる
    Close #1

End Sub

実行すると、このようなファイル選択ダイアログボックスが表示されます.



[OK]ボタンを押すと、ファイルパスを取得して読込処理を行います。[キャンセル]ボタンを押した場合は何もせずに処理を抜けるようにしています。
また、初期表示のフォルダを「InitialFileName = ""」としていますが、こうするとどうやらマイドキュメントが表示されるようです。これは規定でそうなっているのか分かりませんが、自分の環境ではマイドキュメントが開いてきました。


実行結果






comments powered by Disqus

スポンサーリンク