目次
BA (Visual Basic for Applications)は、Microsoft Officeのアプリケーションを自動化するためのプログラミング言語です。この記事では、特定の期日が過ぎたらExcelワークブックにパスワード保護を施す方法をVBAを使って説明します。この方法を用いると、期日を過ぎた場合にユーザーがパスワードを入力しない限りワークブックを開くことができなくなります。
コードの概要
以下のVBAコードは、ワークブックが開かれるときに実行されます。指定した日付を過ぎると、パスワード入力を求め、正しいパスワードが入力されない場合にはワークブックが閉じられます。
Private Sub Workbook_Open() ' ターゲット日付を設定 Dim targetDate As Date targetDate = "2023/05/19" ' 現在の日付を取得 Dim currentDate As Date currentDate = Date ' 現在の日付がターゲット日付を過ぎている場合、パスワードを要求 If currentDate > targetDate Then ' ユーザーからのパスワード入力を要求 Dim password As String password = InputBox("パスワードを入力してください") ' 正しいパスワードを設定 Const correctPassword As String = "myPassword" ' 入力されたパスワードが正しければ、処理を続行 ' 正しくなければ、ワークブックを閉じる If password <> correctPassword Then ThisWorkbook.Close SaveChanges:=False End If End If End Sub
セキュリティについての注意点
上記のコードでは、正しいパスワードがVBAコード内にプレーンテキストで書かれています。これはセキュリティリスクとなり得るため、実際の運用環境ではより安全な方法を検討してください。例えば、ハッシュ化されたパスワードを使用する方法や、外部の安全な場所にパスワードを保存する方法などが考えられます。
さらに、VBAプロジェクト自体をパスワードで保護することで、不正なアクセスを防ぐことができます。この方法を使用すると、VBAエディターでコードを表示または変更するにはパスワードが必要になります。
1時間当りのおおよそのコンサル料金・おおよその月額サービス料・Myサイト・連絡先
1時間当りのおおよそのサービス料金
円 ※あくまでも目安であり連絡先を交換して交渉してください。
おおよその月額サービス料
円 ※あくまでも目安であり連絡先を交換して交渉してください。
電話番号
メールアドレス
サイト
コメント