銀河鉄道

【VBA】ブックが開いているか判定|IsBookOpened

サムネイル
ブックが開いているか判定する

方法1. 追記モードで調べる

Public Function IsBookOpened(ByVal fullPath As String) As Boolean
    IsBookOpened = False
    
    On Error Resume Next
    Open fullPath For Append As #1
    Close #1
    
    If Err.Number > 0 Then IsBookOpened = True
End Function

テキストの追記モードで開いてエラーが出るかどうかで確認

※追記モードとは
既存ファイルの末尾にデータを追記するための開き方
開いているファイルには追記できないようにするためエラーが出る

方法2. 開いている全ファイルの名前を確認する

追記モードがうまくいかなかったら、こちらで。

Public Function IsBookOpened(ByVal fullPath As String) As Boolean
    IsBookOpened = False

    Dim fileName as string
    fileName = GetFileNameFromFullPath(fullPath)    
    
    Dim wb as Workbooks
    For Each wb In Workbooks
      If wb.name = fileName Then
        IsBookOpened = True
        Exit Function 
      End If
    Next wb
End Function

必要なもの

使い方

関連記事

fsoのセット

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧