社内で共有する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ファイル
- 誤操作を防ぎたい定型業務用のファイル
- 自動保存とあわせてセキュリティも高めたいとき
ただし、パスワードを忘れてしまうとファイルを開けなくなるリスクもあるため、管理方法の整備や注意喚起もセットで検討しましょう。
