【Excelマクロ】ブックにパスワードをつけて保存する方法

社内で共有するExcelファイル。誤って編集されたり、勝手に中身を見られたりしないように、パスワードを付けて管理したいケースは多くあります。

手作業でも設定できますが、VBAを使えば保存と同時に自動でパスワードを付けることができます。

SaveAsメソッドでパスワード付き保存

VBAでは、SaveAs メソッドを使うことで、読み取り・編集それぞれにパスワードを設定した状態でファイルを保存できます。

次のように記述します。

Sub SaveWithPassword()

    Dim path As String
    Dim fName As String

    ' 保存先とファイル名の指定
    path = ThisWorkbook.Path & "¥"
    fName = "SecureBook.xlsm"

    ' パスワードを指定して保存
    ThisWorkbook.SaveAs _
        Filename:=path & fName, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
        Password:="open123", _
        WriteResPassword:="edit123", _
        ReadOnlyRecommended:=True

End Sub
  • Password: ファイルを開くときのパスワード
  • WriteResPassword: 編集(上書き保存)をするためのパスワード
  • ReadOnlyRecommended:=True: 読み取り専用を推奨するかどうか

手動で設定する場合は、「名前を付けて保存」→「ツール」→「全般オプション」から行いますが、VBAで自動化することで手間が省けます。

実装するメリット

この処理を使うと、次のようなメリットがあります。

  • 間違って開かれることを防げる
  • 編集の制限を加えることができる
  • パスワード設定を自動化できる
  • 自動保存と組み合わせて、作業効率を高められる

セキュリティ対策としても、業務効率化の手段としても有効です。

まとめ

VBAでパスワード付き保存を実装することで、誤ってや意図的にパスワードを解除された場合でも、ファイルを保存するときにパスワードを再設定することができます。

特に、次のような場面におすすめです。

  • 社外に送付するExcelファイル
  • 誤操作を防ぎたい定型業務用のファイル
  • 自動保存とあわせてセキュリティも高めたいとき

ただし、パスワードを忘れてしまうとファイルを開けなくなるリスクもあるため、管理方法の整備や注意喚起もセットで検討しましょう。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール