Excel VBA 逆引き集 | パスワード保護

Excel VBA
スポンサーリンク

パスワード保護の基本

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で シートやブックを安全に管理し、ユーザー認証を組み込んだフォーム を簡単に作成できます。

タイトルとURLをコピーしました