• 虹色ミツバチ
  • freoカスタマイズメモ、テンプレート・プラグイン配布/officeTIPS
検索プラグイン
虹色ミツバチ

> Entry >MOS>Microsoft Office Excel>マクロ/VBA> ダイアログを表示して選択したファイルを開くマクロ

【MOS】【Microsoft Office Excel】【マクロ/VBA】ダイアログを表示して選択したファイルを開くマクロ

ダイアログを表示して選択したファイルを開くマクロはこんな感じです。

ダイアログを表示して選択したファイルがまだ開かれていなければ開く

同じファイル名のファイルが開かれていた場合は処理を中断します。

Sub SelectFileOpen()
'// 変数の定義
    Dim wbList As Workbook
    Dim flg As Boolean
    Dim filePass, fileName As Variant

'//開閉確認フラグの初期化
    flg = False

'//開こうとしているファイルパスとファイル名を変数に入れる
    filePass = Application.GetOpenFilename(Title:="開くファイルを選択してください。")

'//選択したファイルに対しての処理
    If filePass <> False Then
    '//ファイルが指定されれば続行する
        fileName = Dir(filePass)
    '//現在開いているワークブックを調べる
        For Each wbList In Workbooks
        '//現在開いているワークブック内に同ファイルがあればフラグを立たせる
            If wbList.Name = fileName Then
                flg = True
                Exit For
            End If
        Next wbList
        If flg = True Then
        '//メッセージを表示して中断。
            MsgBox("選択したファイルは既に開かれています。ファイルを閉じてやり直してください。")
        Else
        '//選択されたファイルを開く
            Workbooks.Open fileName
        End If
    Else
    '//メッセージを表示して中断
        MsgBox "ファイルが選択されませんでした。"
    End If
End Sub

ダイアログを表示して選択したファイルがテスト.csvであれば開く

ファイル名の頭に「テスト」という文字が含まれていない場合は処理を中断します

選択したファイルが開かれている場合はなにもしません(開いたままです)。

Sub SelectFileOpen()
'// 変数の定義
    Dim wbList As Workbook
    Dim flg As Boolean
    Dim filePass, fileName As Variant

'//開閉確認フラグの初期化
    flg = False

'//開こうとしているファイルパスとファイル名を変数に入れる
    filePass = Application.GetOpenFilename(Title:="開くファイルを選択してください。")

'//選択したファイルに対しての処理
    If filePass <> False Then
    '//ファイルが指定されれば続行する
        fileName = Dir(filePass)
    '//現在開いているワークブックを調べる
        For Each wbList In Workbooks
        '//現在開いているワークブック内に同ファイルがあればフラグを立たせる
            If wbList.Name = fileName Then
                flg = True
                Exit For
            End If
        Next wbList
    '//選択したファイルのファイル名を確認
        If Left(fileName, 3) <> "テスト" Then
        '//メッセージを表示して中断
            MsgBox "選択したファイルはテスト.csvではありません。"
            Exit Sub
        ElseIf flg = False Then
        '//選択されたファイルを開く
            Workbooks.Open fileName
        End If
    Else
    '//メッセージを表示して中断
        MsgBox "テスト.csvが選択されませんでした。"
        Exit Sub
    End If
End Sub

ページ移動

関連記事

ユーティリティ

Twitter

ページ上部へ