シート 指定ブックにある全てのシートを保護する

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


Sub ExcelSheetAllProtect()
'***************************************
'指定ブックにある全てのシートを保護する
'***************************************
'指定ブックも保護
'引数によりマクロからは変更可能

Dim bok As Workbook, Sht As Worksheet
Dim strMSG As String, i As Long, strPass As String

strPass = PassName 'パスワード設定(すべて同じパスワード)

Set bok = ThisWorkbook

Application.ScreenUpdating = False

'ブック保護
bok.Protect Password:=strPass, Structure:=True, Windows:=False

i = 0
    For Each Sht In bok.Worksheets
        With Sht
           i = i + 1
           strMSG = strMSG & i & vbTab & .Name & vbCr
           'シート保護
           .Protect Password:=strPass, DrawingObjects:=True, Contents:=True, _
           Scenarios:=True, UserInterfaceOnly:=True
        End With
    Next Sht

Application.ScreenUpdating = True

MsgBox strMSG, vbInformation, "保護完了"

'-------------------------------------------------------------------------------------------
'【引数】
'-------------------------------------------------------------------------------------------
'Password           省略可
'   シートまたはブックのパスワード文字列を指定します。
'   パスワードでは大文字と小文字を区別します。
'-------------------------------------------------------------------------------------------
'DrawingObjects     省略可  既定値 False
'   描画オブジェクトを保護させるには、True を指定します。
'-------------------------------------------------------------------------------------------
'Contents           省略可  既定値 True
'   オブジェクトの内容を保護させるには、True を指定します。
'   この引数による保護対象は、グラフの場合はグラフ全体、ワークシートの場合はセルです。
'-------------------------------------------------------------------------------------------
'Scenarios          省略可  既定値 True
'   シナリオを保護するには、True を指定します。
'   この引数はワークシートの場合のみ有効です。
'-------------------------------------------------------------------------------------------
'Structure          省略可  既定値 False
'   ブックの構造 (各シートの相対位置) を保護するには、True を指定します。
'-------------------------------------------------------------------------------------------
'UserInterfaceOnly  省略可
'   True を指定すると、画面上からの変更は保護されますが、マクロからの変更は保護されません。
'   この引数を省略すると、マクロからも、画面上も変更することができなくなります。
'-------------------------------------------------------------------------------------------
'Windows            省略可
'   シートまたはブックのウィンドウを保護するには、True を指定します。
'   この引数を省略すると、ウィンドウは保護されません。
'-------------------------------------------------------------------------------------------
End Sub


Sub ExcelSheetAllUnProtect()
'*******************************************
'指定ブックにある全てのシートを保護解除する
'*******************************************
'指定ブックも保護解除

Dim bok As Workbook, Sht As Worksheet
Dim strMSG As String, i As Long, strPass As String

strPass = PassName 'パスワード設定(すべて同じパスワード)

Set bok = ThisWorkbook

Application.ScreenUpdating = False

'ブック保護解除
bok.Unprotect Password:=strPass

i = 0
    For Each Sht In bok.Worksheets
        With Sht
           i = i + 1
           strMSG = strMSG & i & vbTab & .Name & vbCr
           'シート保護解除
           .Unprotect Password:=strPass
        End With
    Next Sht

Application.ScreenUpdating = True

MsgBox strMSG, vbInformation, "保護解除完了"

End Sub


 

 

2000年01月01日|[VBサンプルコード]:[Sheet]