【Excelマクロ】ファイルが開かれているかを確認するマクロ

Excel VBAで、特定のファイルがすでに開かれているかどうかを事前にチェックすることは、実務でよくある重要な処理の1つです。

開かれたままのファイルに上書き保存しようとすると、エラーが発生したり、意図しない上書きになったりする可能性があるため、事前の確認がとても大切です。

わかりやすいマクロの書き方で、ファイルのオープン状態をチェックする方法を紹介します。

ファイルの開閉状態を簡単にチェックするマクロ

次のコードでは、指定したファイルが開かれているかどうかを判定し、結果をメッセージボックスで知らせます。

Sub CheckFileIsOpen()

    Dim fpath As String
    Dim wb As Workbook
    Dim isOpen As Boolean

    ' 確認したいファイルのフルパスを指定
    fpath = "C:¥Users¥User¥Documents¥test.xlsx"

    isOpen = False

    ' 現在開いているすべてのブックを順に確認
    For Each wb In Workbooks
        If wb.FullName = fpath Then
            isOpen = True
            Exit For
        End If
    Next

    ' 結果を表示
    If isOpen = True Then
        MsgBox "ファイルはすでに開かれています。"
    Else
        MsgBox "ファイルは開かれていません。"
    End If

End Sub

コードの説明

このマクロは、次のような手順でファイルの状態を確認します。

  1. チェック対象のファイルのパスを変数fpathに指定します。
  2. 現在Excelで開かれているすべてのブックをループで確認します。
  3. もし一致するファイル名があれば、その時点でisOpenTrueにしてループを抜けます。
  4. 最後にメッセージボックスで結果を通知します。

実装するメリット

このマクロを事前に実行することで、以下のようなトラブルを未然に防げます。

  • 開かれているファイルへの上書き保存によるエラー回避
  • 他のユーザーが編集中のファイルへのアクセス抑制
  • ファイルの多重オープンによるデータ競合の防止

また、ファイル名の入力ミスを減らすために、ファイル選択ダイアログと組み合わせると、さらに便利になります。

まとめ

このマクロでは、現在開いているすべてのブックを調べて、指定したファイルがすでに開かれているかどうかをチェックしています。

メッセージボックスで結果を表示することで、利用者にも直感的に状態を伝えることができます。

ファイル操作に関連するトラブルを未然に防ぐためにも、このような確認マクロを日常的に取り入れておくと安心です。

コメントする

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

上部へスクロール