• 締切済み

コマンドボタンに二回目のマクロ実行しない設定を

excel2007を使ってマクロ作成の初心者です。 「最新明細」シート上に、ユーザーフォームがあります。 その中のコマンドボタンクリックすると マクロ2を実行します。 しかし、このマクロは月初めに1回だけ実行し、 再びボタンをクリックしても、マクロ2を実行しないようにしたいです。 いろいろ考えたましたが、思ったように動作させることできず、こまってます。 どうしたらよいのでしょう。 Sub 処理済の確認() Dim AB3 As Date Dim AB4 As Date Sheets("計算").Select If AB3 = AB4 Then Exit Sub MsgBox "データは処理済みです。" Sheets("最新明細").Select Else End If If AB3 <> AB4 Then マクロ2の実行 End If End Sub

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

ん~と Sub 処理済の確認() Dim AB3 As Date Dim AB4 As Date AB3=? AB4=? このままでは、両方の変数とも空白なので 下のIf文で常にExitしてしまいますよね If AB3 = AB4 Then Exit Sub MsgBox "データは処理済みです。" Sheets("最新明細").Select Exit Subの記入はここでしょう。 上記のままでは、MsgBoxもSlectも実行されませんよね。 Else マクロ2の実行 もここで実行できますし。 End If End Sub

aitaine
質問者

お礼

何とかできました。ありがとうございました。

aitaine
質問者

補足

ご教示のとおり修正して実行しましたが、エラーが生じます。 ちなみにセルAB3には=EDATE(E2,-2) AB4には2012/12/20と入力されています。 Sub 処理済の確認0() Dim AB3 As Date Dim AB4 As Date AB3 = Range("AB3") AB4 = Range("AB4") 'ここでエラー→型が一致しません。 Sheets("計算").Select If AB3 = AB4 Then MsgBox "データは処理済みです。" Exit Sub End If If AB3 <> AB4 Then マクロ2の実行 End If End Sub