指定期日以降はそのブックを開かないようにするには?

Question 72.7   Previous Next
現在開いているエクセルのファイルを、ある設定日を経過すると それ以上作業できないという(期間限定使用ファイルみたいな)マクロを、組むことは可能でしょうか?
たとえば ある見積書ファイル配布して 一定の期日を経過(指定期日以降)は 「このファイルは 使用できません」等のコメントつきで それ以上は ファイルを開く(進む)ことができないようなマクロの組み方 可能であれば、その方法を教えていただきたいのですが。
宜しくお願いします。
Answer   Copyright (C) 2005.3.30 永井善王
school あなたがなさりたいことを、順を追いながら整理させてください。
 ・ ユーザーが特定のExcelブックを開こうとしたときに、
 ・ 指定期日以降ならば、
 ・ 「使用できません」メッセージを表示して、
 ・ そのブックを開かないようにする
ためのマクロを作成したい、ということで、よろしいでしょうか。

そうであるならば、Auto_Openプロシージャを作成しておけば、可能になります。
下記のマクロを、そうしたいブックの 標準モジュールのコード画面で入力し、上書き保存して、一旦閉じます。
Private Sub auto_open()
Const 指定期日 As Variant = 2005 / 3 / 31
    If Date >= 指定期日 Then
        MsgBox "有効期限切れのため使用できません"
        ThisWorkbook.Close
    End If
End Sub
なお、上記マクロでは上手く動作しない場合は、下記マクロを使用してください。
Private Sub auto_open()
Dim 指定期日 As Date
Const 指定日 = "2005/5/31"
    指定期日 = Year(指定日) & "/" & Month(指定日) & "/" & Day(指定日)
    If Date >= 指定期日 Then
        MsgBox "有効期限切れのため使用できません"
        ThisWorkbook.Close
    End If
End Sub

 

Excel VBA Macro