VBA でマクロを保護する

Iqra Hasnain 2024年2月15日
  1. マクロが VBA に表示されないように保護する
  2. マクロが VBA で実行されないように保護する
VBA でマクロを保護する

マクロが VBA で表示および実行されないように保護する方法を紹介します。また、マクロのパスワードを設定するためのさまざまな手順を紹介します。

マクロが VBA に表示されないように保護する

データを保護することは非常に重要です。誰かがそれをどのように使用するかはわかりません。ワークブックとワークシートにパスワードを設定するだけで保護できるため、Excel のマクロが表示されないように保護することもできます。

まず、目的のワークシートにコマンドボタンを追加します。

ワークシートにコマンドボタンを追加する

次に、表示から保護したい単純なマクロを作成します。以下に示すように、シート内のセルに値を割り当てる単純なマクロを作成します。

Private Sub CommandButton1_Click()
Range("D1").Value = "This is a protected cell"
End Sub

出力:

VBA で保護するマクロを作成する

次に、VBA のメニューバーから[ツール]を選択します。リストがポップアップ表示されたら、VBAProject Properties を選択します。

VBA プロジェクトのプロパティを開くと、GeneralProtection のタブが表示されます。

VBA でマクロを保護するステップ 1

保護タブを選択し、表示用にプロジェクトをロックをチェックする必要があります。

確認のためにパスワードを 2 回入力する必要があります。次に、以下に示すように、OK を選択する必要があります。

VBA ステップ 2 でマクロを保護する

変更を保存して 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 での実行からの保護

このようにして、VBA を使用して、マクロを表示および実行から簡単に保護できます。