ExcelVBA セルやシート、ブックを誤操作から保護するロックの使い方

 

ExcelVBA  セルやシート、ブックの内容を誤操作から保護するために、ロックやロック解除を行う方法を解説します。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA セルやシート、ブックの保護シーン

以下のシーンで利用します。

1.データ入力フォームで、特定のセルだけ入力を許可する。

2.計算シートの数式が変更されないように保護する。

3.特定の操作を実行後にロック解除し、完了後に再ロックする。

 

Excel VBA セルやシート、ブックの保護の使い方と注意点

1.セルのロック ( Locked = True ) は、シートが保護されている場合にのみ有効

2.シートを保護 ( Protect ) することで、ロックされたセルが編集不可になる

3. Protect のパスワードを設定しないと、解除 ( Unprotect ) が誰でも可能

 

Excel VBAセルやシート、ブックの保護のサンプルコード

標準モジュール(セルのロック・ロック解除)A1:A10 だけ編集不可になり、他のセルは編集可能に
Option Explicit

Sub LockCells()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1") ' シートを指定

    ' まず全セルのロックを解除
    ws.Cells.Locked = False
    
    ' A1:A10 のみロック
    ws.Range("A1:A10").Locked = True

    ' シートを保護(パスワードなし)
    ws.Protect
End Sub

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

シートの保護を解除し、すべてのセルが編集可能に

Option Explicit

Sub UnlockSheet()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' シートの保護を解除
    ws.Unprotect
End Sub

パスワード付きの保護
パスワードで保護・解除できるので、勝手に編集できない

Option Explicit

Sub ProtectWithPassword()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' シートをパスワード付きで保護
    ws.Protect Password:="1234"
End Sub
   
   vba
Option Explicit

Sub UnprotectWithPassword()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' シートの保護を解除(パスワードが必要)
    ws.Unprotect Password:="1234"
End Sub

ブック全体の保護
ブック全体を保護して、シート追加・削除を防ぐ

Option Explicit

Sub ProtectWorkbook()
    ThisWorkbook.Protect Password:="1234"
End Sub
   
   vba
Option Explicit

Sub UnprotectWorkbook()
    ThisWorkbook.Unprotect Password:="1234"
End Sub

 

Excel VBAセルやシート、ブックの保護|まとめ

操作 コード 説明
セルのロック Range("A1:A10").Locked = True 指定セルのみ編集不可にする
シートの保護 ws.Protect ロックされたセルを編集不可にする
シートの解除 ws.Unprotect シートの保護を解除
パスワード保護 ws.Protect Password:="1234" 不正解除を防ぐ
ブック保護 ThisWorkbook.Protect シートの追加・削除を防ぐ

誤入力を防ぎつつ、必要な部分だけ編集可能にするのがポイント

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問