• ベストアンサー
  • 困ってます

日付を比較したいのですが

  • 質問No.57341
  • 閲覧数1059
  • ありがとう数6
  • 回答数3

お礼率 57% (8/14)

こんにちは。

2つのテキストボックスそれぞれに入っている日付を
同じ日付または次の日ならOKでそれ以外ならエラーを出すように比較したいのですが、
次の日をどのように表したらいいのか分かりません。


始めは、テキストボックスに入っている日付を文字列で"20010329"のように表して、
これと同じか "+1"ならOKとしていたのですが、
よく考えたら3月31日と4月1日なら"20010331"と"20010401"となり
うまくいきません。
何か良い方法はないでしょうか?

質問者が選んだベストアンサー

  • 回答No.3
  • ベストアンサー

ベストアンサー率 77% (14/18)

日付が正しく6桁で入力されているという前提で、以下のよ
うにしてはどうでしょうか?

'*************************************************
sDate = "20010331"
sDate2 = "20010401"

sDate = Left$(sDate ,4) & "/" & Mid$(sDate, 5, 2) & "/" & Mid$(sDate, 7, 2)

sDate2 = Left$(sDate2 ,4) & "/" & Mid$(sDate2, 5, 2) & "/" & Mid$(sDate2, 7, 2)

If DateValue(sDate2) - DateValue(sDate) = 0 then
Msgbox "同じ日付"
Elseif DateValue(sDate2) - DateValue(sDate) = 1 then
Msgbox "次の日"
Else
Msgbox "それ以外"
End If

'*************************************************

みばえが悪いので適当に修正してください。
変数等は宣言してください。

以上、参考になれば幸いです。
お礼コメント
oohchan

お礼率 57% (8/14)

こんにちは。早速ご返事ありがとうございました。

tom777さんの教えて下さったのを参考にして、修正してうまく動作するように
なりました。
本当にありがとうございました。もっともっと勉強して一人前になれるように
がんばります。
投稿日時:2001/03/29 15:57

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 32% (54/165)

DateDiff関数を使用してはどうでしょうか。
ご質問の日付を使って記述例を挙げてみます。

If DateDiff("d", "2001/03/31","2001/04/01") = 1 Then

これで翌日を判断することができるはずです。
ちなみに"d"は時間間隔モードで、日での比較を行うという意味です。
この方法ならテキストボックスからの値で比較できるのではないでしょうか。
(内部処理はDate型です)
お礼コメント
oohchan

お礼率 57% (8/14)

こんにちは。早速ご返事ありがとうございました。

教えていただいた通り、DateDiff関数を使って翌日判定が
できました。

本当にありがとうございました。
もっともっと勉強して、早く一人前になれるようにがんばります。
投稿日時:2001/03/29 16:03
  • 回答No.1

ベストアンサー率 46% (22/47)

テキストボックスじゃなくて、DateTimePickerとかを使ったほうが、日付入力は簡単だと思います。

日付の比較は、Date型の変数で行うといいでしょう。
お礼コメント
oohchan

お礼率 57% (8/14)

こんにちは。早速、ご返事ありがとうございます。

DateTimePickerっていうのがあったんですね~。
早速ヘルプで調べてみました。

テキストボックスのがうまく動作するようになったので、こちらでも
チャレンジしたいと思います。

本当にありがとうございました。
投稿日時:2001/03/29 16:09
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ