🔐全シート一括保護##
Private Sub 全シート一括保護()
Dim s As Worksheet
For Each s In ActiveWorkbook.Sheets
s.Protect DrawingObjects:=False
Next s
End Sub
DrawingObjects:=False
はオブジェクト(画像)は編集できる、みたいな。
🔓全シート一括解除##
Private Sub 全シート一括保護解除()
Dim s As Worksheet
For Each s In ActiveWorkbook.Sheets
s.UnProtect
Next s
End Sub
🔐選択されたシートの保護を一括保護##
Sub 選択されたシートの保護を一括解除する()
Dim cnt As Long ' 選択されているシートの数
Dim sh_name() As String ' 選択されているシートのName
Dim sh As Object ' WorksheetまたはChart
Dim i As Long
cnt = ActiveWindow.SelectedSheets.Count
ReDim sh_name(1 To cnt)
' 選択されているシートのNameを配列に格納
i = 1
For Each sh In ActiveWindow.SelectedSheets
sh_name(i) = sh.Name
i = i + 1
Next
' 選択されているシートの保護を順番に解除
For i = 1 To cnt
With Sheets(sh_name(i))
.Select
.Protect DrawingObjects:=False
End With
Next i
' 元々選択されていたシートを選択し直す
For i = 1 To cnt
Sheets(sh_name(i)).Select Replace:=False
Next i
End Sub
🔓選択されたシートの保護を一括解除##
Sub 選択されたシートの保護を一括解除する()
Dim cnt As Long ' 選択されているシートの数
Dim sh_name() As String ' 選択されているシートのName
Dim sh As Object ' WorksheetまたはChart
Dim i As Long
cnt = ActiveWindow.SelectedSheets.Count
ReDim sh_name(1 To cnt)
' 選択されているシートのNameを配列に格納
i = 1
For Each sh In ActiveWindow.SelectedSheets
sh_name(i) = sh.Name
i = i + 1
Next
' 選択されているシートの保護を順番に解除
For i = 1 To cnt
With Sheets(sh_name(i))
.Select
.Unprotect
End With
Next i
' 元々選択されていたシートを選択し直す
For i = 1 To cnt
Sheets(sh_name(i)).Select Replace:=False
Next i
End Sub
Thanks##
選択されているシートの保護を一括解除するExcelマクロ
すべてのシートを一括で保護(ロック)する方法
ちっ####
アンチマイクロソフトの私が再びVB使うとは思いもしなかった
使うほどにSpreadsheetもGASもいいと思う。
しかし、どでかいデータとか非力のマシンではGoogleはありえないかなぁ