- ベストアンサー
日付について
なぜ同じではないのでしょうか? MsgBox Year(Date) & "/01/13" = Date If Year(Date) & "/01/13" = Date Then MsgBox Year(Date) & "/01/13" = Date End If を実行するとFalseが返ってきます。 MsgBox Year(Date) & "/01/13"は「2009/01/13」 Dateは「09/01/13」 です。 桁数が違うからできないのでしょうか?. これはどちらかが日付型と認識されていないのでしょうか? これをTrueを返すにはどうすればいいでしょうか? よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
IsDate CDate DateSerial DateValue を調べてみてください。 なお、単独で MsgBox Date とすると、今日の日付けが返ってきます。 変数名に使うのなら MyDate などがいいでしょう。 一つ恐ろしい?ことを。 ↓を行うと、システム時刻の日付けが書き換えられてしまいます。 Date = "2011/1/1" MsgBox Date このこともあるので変数名に Date を使うのは不適切です。
その他の回答 (3)
- hallo-2007
- ベストアンサー率41% (888/2115)
>これはどちらかが日付型と認識されていないのでしょうか? Year(Date) & "/01/13" は文字型 Date は日付型では Sub ボタン1_Click() MsgBox Year(Date) & "/01/13" = Date If DateValue(Year(Date) & "/01/13") = Date Then MsgBox DateValue(Year(Date) & "/01/13") = Date End If End Sub で試してみてください。
お礼
ご回答ありがとうございます。
- marbin
- ベストアンサー率27% (636/2290)
#2です。 コードの左辺と右辺を読み違えてました。 ですので、私が指摘したようなことは杞憂 でした。失礼しました。
お礼
再度ありがとうございます。
- riveron77
- ベストアンサー率48% (180/370)
> これはどちらかが日付型と認識されていないのでしょうか? そうですね。 ウォッチ式で見てみると「Year(Date) & "/01/13"」の「型」が「Variant/String」になっていると思いますが、いかがでしょうか。 MsgBox Year(Date) & "/01/13" = Date ...で「True」を表示させる方法はいくらでもあると思いますが、 MsgBox CDate(Year(Date) & "/01/13") = Date ...としてみてはいかがでしょうか?
お礼
確かにウォッチ式で見てみたら仰るとおりでした!ご回答ありがとうございます。
お礼
いろいろ調べてみます。 ご回答ありがとうございます。