現在開いているブックが編集可能状態なら読み取り専用に、読み取り専用状態なら編集可能に切り替えます。これには、ブックを開き直す方法と、アクセスモードを切り替える方法があります。
ブックを開き直して読み取り専用を切り替える
現在のブックのフルパスと読み取り専用状態を取得してからいったん閉じ、状態を変えて開き直す方法です。同様の方法は、Wordなどでも使えます。
Sub ブックの読み取り専用の切替1()
Dim pathWB As String
Dim flgR As Boolean
With ActiveWorkbook
pathWB = .FullName
flgR = .ReadOnly
.Close
End With
Workbooks.Open Filename:=pathWB, ReadOnly:=Not (flgR)
End Sub
アクセスモードで読み取り専用を切り替える
ファイルのアクセスモードを切り替えるExcelの機能を利用する方法です。
Sub ブックの読み取り専用の切替2()
With ActiveWorkbook
If .ReadOnly Then
.ChangeFileAccess Mode:=xlReadWrite
Else
.ChangeFileAccess Mode:=xlReadOnly
End If
End With
End Sub