プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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

この回答への補足

ご教示のとおり修正して実行しましたが、エラーが生じます。
ちなみにセル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

補足日時:2013/02/24 18:32
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/02/26 19:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています