Excelを使用すると、ワークシートを保護および保護解除できます。もちろん、目的は他の人があなたのワークブックを使用できるようにすることですが、各ワークシート内の特定のセルを変更することはできません。

保護はワークシートレベルで行われるため、ワークブック内の各ワークシートをステップスルーして、それらを保護または保護解除するのは大きな苦痛になる可能性があります。 25個のワークシートがある場合は、各ワークシートをアクティブ化し、保護または保護解除を実行して、次のワークシートに進む必要があります。

ワークブック内の各ワークシートを保護するための時間のかからない方法は、マクロを使用して実際の作業を行うことです。次のマクロでうまくいきます:

Sub ProtectAllSheets()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

For Each ws In Worksheets         ws.Select         ws.Protect Password:="Password"

Next ws

Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

すべてのワークシートの保護を解除するマクロはわずかに異なります:

Sub UnProtectAllSheets()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

For Each ws In Worksheets         ws.Select         ws.Unprotect Password:="Password"

Next ws

Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

これらのマクロは問題なく機能しますが、いくつかの注意点があります。

まず、各マクロのPassword変数がワークシートの適切なパスワードに設定されていることを確認する必要があります。 (もちろん、これはすべてのワークシートが同じhttp://username-password.com/14/what-makes-a-good-password [passwords]を使用していることを前提としています。)

2つ目の注意点は、マクロにパスワードを含める必要があるため、ブックの全体的なセキュリティが危険にさらされる可能性があることです。マクロを表示できる人なら誰でも、ブックのパスワードを知っているはずです。

この最後の問題の解決策として、作業で使用するパスワードを要求するようにマクロを変更できます。以下は、ワークシートを保護するマクロのバージョンです。

Sub ProtectAllSheetsPass()

Dim ws As Worksheet     Dim sOrigSheet As String     Dim sOrigCell As String     Dim sPWord As String

Application.ScreenUpdating = False     sOrigSheet = ActiveSheet.Name     sOrigCell = ActiveCell.Address

sPWord = InputBox("What password?", "Protect All")

If sPWord > "" Then         For Each ws In Worksheets             ws.Select             ws.Protect Password:=sPWord         Next ws     End If     Application.GoTo Reference:=Worksheets("" _       & sOrigSheet & "").Range("" & sOrigCell & "")

Application.ScreenUpdating = True End Sub

マクロは、パスワードを要求する入力ボックスを表示します。次に、同じパスワードを使用して、ブック内のすべてのワークシートを保護します。すべてのワークシートの保護を解除するマクロに対して、同じ種類の変更を行うことができます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13075)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。