プロが教えるわが家の防犯対策術!

ファイルを開いた時、本日の日付があるセル範囲(例 A1:B15)の中の日付とマッチした場合にのみメッセージを表示する方法をご存知でしたら教えてください。

宜しくお願いいたします。

A 回答 (4件)

Findメソッドを使う方法もあります。


下記コードを標準モジュールにコピペ
 
'-----------------------------------------
Sub Auto_Open()
 Dim FoundCell As Range
 Set FoundCell = Range("A1:B15").Find(Date, , xlValues, xlWhole)
 If Not FoundCell Is Nothing Then
  MsgBox FoundCell.Address & " に今日の日付あり"
 End If
End Sub
'-------------------------------------------

ブックを開いたときマクロを自動で実行させるためにはふつう次の2つのどちらかを使用します。
(1)標準モジュールに、Auto_Openという名前のマクロを作る
(2)WorkBookのOpenイベントにマクロを作る
正確に言うと上記2つはある条件のもとでは違った動作をするのですが今回の場合は同じ動作をします。

 
 
    • good
    • 0
この回答へのお礼

ご回答いただきました皆様ありがとうございました!
また、早急にご回答いただきまして本当に助かりました。

お礼日時:2008/01/25 09:57

ThisWorkbookに記載するなら


Private Sub Workbook_Open()
Dim RG As Range
For Each RG In Range("A1:B15")
If RG = Date Then
MsgBox "本日の日付と一致しました。"
Exit Sub
End If
Next RG
End Sub
    • good
    • 0

ファイルを開いた時、自動でだすのですよね?


なら、標準モジュールに、

Sub Auto_Open()
If Application.CountIf(ActiveSheet.Range("A1:B15"), Date) Then
MsgBox "本日の日付とマッチします。"
End If
End Sub

ですね。
但し、本日の日付があるセルがアクティブになってなければいけませんが。
アクティブじゃないならActiveSheetの代わりにシート名を指定して下さい。
    • good
    • 1

countif を使えば、VBAがなくてもよいかな?


とも思いますが・・・。

Sub main()
  Dim rng As Range
  Set rng = ActiveSheet.Range("a1:b15")
  If Application.CountIf(rng, Date) Then
    MsgBox "本日の日付があったよ"
    End If
End Sub
    • good
    • 0

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

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