VBA でマクロを保護する
マクロが VBA で表示および実行されないように保護する方法を紹介します。また、マクロのパスワードを設定するためのさまざまな手順を紹介します。
マクロが VBA に表示されないように保護する
データを保護することは非常に重要です。誰かがそれをどのように使用するかはわかりません。ワークブックとワークシートにパスワードを設定するだけで保護できるため、Excel のマクロが表示されないように保護することもできます。
まず、目的のワークシートにコマンドボタンを追加します。
次に、表示から保護したい単純なマクロを作成します。以下に示すように、シート内のセルに値を割り当てる単純なマクロを作成します。
Private Sub CommandButton1_Click()
Range("D1").Value = "This is a protected cell"
End Sub
出力:
次に、VBA のメニューバーから[ツール]を選択します。リストがポップアップ表示されたら、VBAProject Properties
を選択します。
VBA プロジェクトのプロパティを開くと、General
と Protection
のタブが表示されます。
保護
タブを選択し、表示用にプロジェクトをロック
をチェックする必要があります。
確認のためにパスワードを 2 回入力する必要があります。次に、以下に示すように、OK
を選択する必要があります。
変更を保存して Excel ファイルを閉じてから、もう一度開きます。VBA でコードを表示しようとすると、ダイアログボックスが表示されます。
VBA でファイルを表示するには、正しいパスワードを入力する必要があります。
コマンドボタンをクリックしてコードを実行することはできますが、正しいパスワードを入力しない限り、コードを表示または編集することはできなくなります。
マクロが VBA で実行されないように保護する
マクロが VBA で実行されないように保護したいだけの状況があります。この場合のパスワード保護ツールとして Application.InputBox
を使用できます。
ユーザーがボックス内に正しい単語を入力すると、コードが実行されます。そうしないと、誤ったメッセージが表示され、コードの実行が停止します。
VBA を使用して Excel の特定のセルに値を設定しようとする例を見てみましょう。以下に示すように、上記の方法を使用して、VBA コードが実行されないように保護します。
Sub Pass()
Dim password As Variant
passcode = Application.InputBox("Enter Pass Code", "Password Protected")
Select Case passcode
Case Is = False
Case Is = "password"
Range("B1").Value = "Code executed!"
Case Else
MsgBox "Incorrect Pass Code"
End Select
End Sub
出力:
このようにして、VBA を使用して、マクロを表示および実行から簡単に保護できます。