印刷を禁止するマクロが上手く動作しないが?

Question 020p 拙著「組み方講座・プロの定番」 Previous Next
275ページ 4章1-4 合わせ技(1) ◆ 環境・・ Excel & Windows
詳細は こちら
先生の著書「プロの定番・裏技・合わせ技編」のP.275に印刷を禁止するマクロがありますが、
一定期間を経過した後、印刷を禁止する様に以下のようなマクロを組んだのですが、うまくいきません。 ご教授をお願いしたいのですが、よろしくお願いします。
Private Sub W2orkbook_BeforePrint(Cancel As Boolean)
   Dim d As Integer
   Sheets("基本入力").Select
   Range("E94").Select
   d = Range("E94").Value      'dは年末からtoday()を引いた整数
   If d <= 0 Then
      Cancel = True
      MsgBox "新年度に対応していませんので、印刷できません", 48, "担当者までご連絡下さい。"
   Else
      Cancel = False
   End If
   Range("d8").Select
End Sub
照会  
『dは年末からtoday()を引いた整数』について、具体的に説明していただきたいです。
Q1. E94セルに入っている数式は?
補足説明      
返信を頂き有り難うございます。
『dは年末からtoday()を引いた整数』 については、ワークシート上で、設定期限 「2010/12/31」、本日 「today()」、
計算式は 「設定期限」-「本日」 で単に 「C94-D94」 の様な計算式を用いました。
再照会  
ワークシートは左下図のようなものですね。
  
[ファイル]メニューから印刷しようとすると、右上図のメッセージボックスが表示されます。 どこがおかしいですか?
補足説明      
お手数をおかけしました。 どうやら原因は印刷マクロにあったようです。
理由はまだわかりませんが、マクロの1行ずつを実行すると 「RANGEクラスのSelctメソッドが失敗しました」 と表示されます。 印刷マクロは以下の通りですが、 実行が完了するとフリーズしてしまいます。
Sub 印刷01_申込書()
   If vbNo = MsgBox("印刷します。プレビュー画面で確認をし、" _
   & vbCrLf & "『ページ設定』で調整をした後、" _
   & vbCrLf & "『プレビューを閉じる』を押して下さい。", vbYesNo, "確認") Then Exit Sub
   Range("印刷01_申込書").Select  '印刷01_申込書は名前で定義した範囲です。
   Selection.PrintOut From:=1, To:=1, Preview:=True
   If vbNo = MsgBox("印刷を実行しますか?", vbYesNo, "確認") Then Exit Sub
   Selection.PrintOut
   MsgBox "印刷完了", vbInformation, "確認"
End Sub
Answer   2010.6.1 永井善王
せっかく、本で見つけたサンプルマクロを活用しようと努力されているのに、水を浴びせるようですみません。 が、あなたの場合、後で示された印刷マクロに一本化して下記のようにすれば、すっきりすると思います。
Sub 印刷01_申込書()
   Dim d As Integer
   Sheets("基本入力").Select
   Range("E94").Select
   d = Range("E94").Value      'dは年末からtoday()を引いた整数
   If d <= 0 Then
      MsgBox "新年度に対応していませんので、印刷できません", 48, "担当者までご連絡下さい。"
      Exit Sub                 'by Y.Nagai
   End If
    
   If vbNo = MsgBox("印刷します。プレビュー画面で確認をし、" _
   & vbCrLf & "『ページ設定』で調整をした後、" _
   & vbCrLf & "『プレビューを閉じる』を押して下さい。", vbYesNo, "確認") Then Exit Sub
   Range("印刷01_申込書").Select  '印刷01_申込書は名前で定義した範囲です。
   Selection.PrintOut From:=1, To:=1, Preview:=True
   If vbNo = MsgBox("印刷を実行しますか?", vbYesNo, "確認") Then Exit Sub
   Selection.PrintOut
   MsgBox "印刷完了", vbInformation, "確認"

   Range("d8").Select          'by Y.Nagai
End Sub
上から2~9行目がThisWorkbookのコード画面から移したもので、8行目は私が追加しました。そして、 下から2行目も私が追加しました。
ありがとうございました
先生のご指摘で作成したところ、問題なく動いています。 オッと驚いてしまいました。
これからもマクロの勉強を続けて参りますので、宜しくお願いします。

Excel VBA Macro