パスワード保護の基本
Excel VBAで「特定のシートやブックをパスワードで保護したい」「ユーザーが入力したパスワードで制御したい」といった場面では パスワード保護 を使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- パスワード保護とは?
- シートやブックを編集できないようにロックする仕組み。
- VBAでパスワードを設定・解除できる。
- 用途:
- 誤操作防止(重要なシートを編集させない)
- 特定ユーザーだけが編集できるようにする
- データの改ざん防止
テンプレ1:シートをパスワードで保護
Sub ProtectSheet()
Worksheets("Data").Protect Password:="mypassword"
End Sub
VB- ポイント:
"mypassword"がパスワード。- シート「Data」が編集できなくなる。
テンプレ2:シート保護を解除
Sub UnprotectSheet()
Worksheets("Data").Unprotect Password:="mypassword"
End Sub
VB- ポイント:
- 保護時と同じパスワードを指定。
- 正しいパスワードで解除できる。
テンプレ3:ブック全体を保護
Sub ProtectWorkbook()
ThisWorkbook.Protect Password:="mypassword"
End Sub
Sub UnprotectWorkbook()
ThisWorkbook.Unprotect Password:="mypassword"
End Sub
VB- ポイント:
ThisWorkbookを対象にするとブック全体を保護。
テンプレ4:ユーザー入力でパスワード認証
Sub PasswordCheck()
Dim inputPwd As String
inputPwd = InputBox("パスワードを入力してください")
If inputPwd = "mypassword" Then
MsgBox "認証成功!"
Worksheets("Data").Unprotect Password:="mypassword"
Else
MsgBox "パスワードが違います"
End If
End Sub
VB- ポイント:
InputBoxでユーザーにパスワードを入力させる。- 正しい場合のみ解除。
テンプレ5:ログイン画面と組み合わせる(UserForm)
UserFormに TextBox1(パスワード入力欄) と CommandButton1(OKボタン) を配置。
TextBox1のプロパティで PasswordChar = "*" を設定。
Private Sub CommandButton1_Click()
If TextBox1.Value = "mypassword" Then
MsgBox "認証成功!"
Worksheets("Data").Unprotect Password:="mypassword"
Unload Me
Else
MsgBox "パスワードが違います"
End If
End Sub
VB- ポイント:
- パスワード入力欄は「*」で隠す。
- 認証成功時にシートを解除。
例題で練習
'例1:シートを保護
Sub Example1()
ProtectSheet
End Sub
'例2:シート保護を解除
Sub Example2()
UnprotectSheet
End Sub
'例3:ブック全体を保護
Sub Example3()
ProtectWorkbook
End Sub
'例4:ユーザー入力で認証
Sub Example4()
PasswordCheck
End Sub
'例5:UserFormでパスワード認証
' → CommandButton1_Click にコードを記述
VB初心者向けポイント
- Protect / Unprotect を覚える → シートやブックを守る基本。
- パスワードは文字列で指定 →
"mypassword"のように書く。 - ユーザー入力を組み合わせると柔軟 → InputBoxやUserFormで認証可能。
- PasswordCharで入力を隠す → セキュリティ感を出せる。
- 重要データは必ず保護 → 誤操作や改ざんを防げる。
👉 この「パスワード保護テンプレ」を覚えておけば、Excel VBAで シートやブックを安全に管理し、ユーザー認証を組み込んだフォーム を簡単に作成できます。
