Public Const MESSAGE_OF_PASSWORD_INPUT_TITLE As String = "Input Box"
Public Const MESSAGE_OF_PASSWORD_INPUT_CONTENT As String = "Please input password"
Public Sub protectBookMain()
Dim passPhase As String
passPhase = InputBox(MESSAGE_OF_PASSWORD_INPUT_CONTENT, MESSAGE_OF_PASSWORD_INPUT_TITLE)
If passPhase <> "" Then
Call protectBook(passPhase)
End If
End Sub
Public Sub protectBook(passPhase As String)
Dim savePath As String
Application.DisplayAlerts = False
With ActiveWorkbook
savePath = .Path
saveFileName = .Name
.SaveAs _
Filename:=savePath & "\" & saveFileName, _
passWord:=passPhase
End With
Application.DisplayAlerts = True
End Sub
ショートカットキー、およびイベントプロシージャの登録。
' オープン
Private Sub Workbook_Open()
' キーバインドの設定
Application.OnKey "^{m}", "protectBookMain"
End Sub
' 閉じる前
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call protectBookMain
End Sub