シート 指定ブックにある全てのシートを保護する
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
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 |