保存時にパスワードを要求する

上書き保存にパスワードを設定してみましょう。ここで一つ注意点があります。当然のことですが、Excel でマクロの実行を許可していないPCではこのイベントプロシージャは実行されません。すなわちパスワードなしで普通に上書きされてしまいます。すべての環境でパスワードを要求したいのならば、[名前をつけて保存] → [ツール] → [全般オプション] で [書き込みパスワード] を設定しておく必要があります。この場合は、マクロとは違ってブックを開く前にパスワードを要求されます。

ワークブックモジュール内に以下のプロシージャを記述します。ここではパスワードとして「5963」を指定しています

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
TopLine:
  Select Case Application.InputBox("パスワードを入力してください")
    Case 5963
      Exit Sub
    Case False
      Cancel = True
    Case Else
      GoTo TopLine
  End Select
End Sub


キャンセル押下で保存を中断、パスワードが違った場合は再度入力を要求します。パスワードを入力している際にその文字列が画面に出るので、これを「*」のような文字にしたければユーザーフォームを作ってテキストボックスを挿入し、その PasswordChar プロパティに「*」を入力しておきます。