VBA 判断Excel表是否为共有模式


 
Sub Sample_MultiUserEditing()
'ブックの共有モードと排他モードを切り替える

    Dim FileName As String
    Dim BookState As String
    Dim w As Workbook

    FileName = "C:\Documents\test01.xlsx"
    Set w = Workbooks.Open(FileName)

    '確認メッセージを非表示にする
    Application.DisplayAlerts = False

    If w.MultiUserEditing = False Then

        '排他モードで開いた場合、共有モードで保存
        w.SaveAs FileName:=w.FullName, AccessMode:=xlShared
        BookState = "共有モード"

    Else

        '共有モードで開いた場合、排他モードで保存
        w.ExclusiveAccess
        w.Save
        BookState = "排他モード"

    End If

    '確認メッセージを表示する
    Application.DisplayAlerts = True

    '現在のブックの状態
    MsgBox w.Name & "を " & BookState & " に変更しました。"

    'ブックを閉じる
    w.Close
    Set w = Nothing

End Sub