• ベストアンサー

日付について

なぜ同じではないのでしょうか? 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を返すにはどうすればいいでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

IsDate CDate DateSerial DateValue を調べてみてください。 なお、単独で MsgBox Date とすると、今日の日付けが返ってきます。 変数名に使うのなら MyDate などがいいでしょう。 一つ恐ろしい?ことを。 ↓を行うと、システム時刻の日付けが書き換えられてしまいます。 Date = "2011/1/1" MsgBox Date このこともあるので変数名に Date を使うのは不適切です。

noname#150256
質問者

お礼

いろいろ調べてみます。 ご回答ありがとうございます。

その他の回答 (3)

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

>これはどちらかが日付型と認識されていないのでしょうか? 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 で試してみてください。

noname#150256
質問者

お礼

ご回答ありがとうございます。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

#2です。 コードの左辺と右辺を読み違えてました。 ですので、私が指摘したようなことは杞憂 でした。失礼しました。

noname#150256
質問者

お礼

再度ありがとうございます。

  • riveron77
  • ベストアンサー率48% (180/370)
回答No.1

> これはどちらかが日付型と認識されていないのでしょうか? そうですね。 ウォッチ式で見てみると「Year(Date) & "/01/13"」の「型」が「Variant/String」になっていると思いますが、いかがでしょうか。 MsgBox Year(Date) & "/01/13" = Date ...で「True」を表示させる方法はいくらでもあると思いますが、 MsgBox CDate(Year(Date) & "/01/13") = Date ...としてみてはいかがでしょうか?

noname#150256
質問者

お礼

確かにウォッチ式で見てみたら仰るとおりでした!ご回答ありがとうございます。

関連するQ&A