限定しりとり

エクセル2002使用です。

セルA1に 日付型で2004/9/25と間違いなく入っています。

その条件で下記のようにコードを打ちました。

Sub test()

If Day(Range("A1")) = 30 Then
MsgBox "yes"
End If

End Sub

25=30ならばmsgboxを表示なので、上記の例では表示してはいけないのに表示されます。
ちなみに=を<>不等号にしてもMsgboxが開きます。

おそらく型の問題だと思ったのですが、DAY関数はVariant型のintergerなので問題ないと思うのですが、理由がわかりません。

よろしくお願いします。

A 回答 (4件)

ORの使い方 間違ってますよ (^^)




If Day(Range("A1")) = 30 Or Day(Range("A1")) =31 Then

これでどうでしょうか?
    • good
    • 0
この回答へのお礼

nagare 様 早速のお返事ありがとうございます。
ありがとうございました。お騒がせしました。

この辺の基本的なことが・・・・
がんばりますので、今後ともよろしくお願いします。

ありがとうございました。

お礼日時:2004/09/17 16:56

Sheet1のA1に2004/9/25


Sheet2のA1に2004/9/30
と入っていて、そのSubがSheet2内のSubなら、そのような動作になります。
VBE画面の左側にシートの一覧があります。
A1に2004/9/25と入っているシートをダブルクリックしてみてください。
右側にそのSubが表示されますか?
表示されたら、そのSubを実行してみてください。
それでも結果が変わらなかったら・・・分かりません(>_<)

この回答への補足

snoopy64 様(昨日から)ありがとうございます。

すいません。質問ミスでした。
If Day(Range("A1")) = 30 or 31 Then
でうまくいきません。

お騒がせしていますが、よろしくお願いします。
ホント、すいません。

補足日時:2004/09/17 16:50
    • good
    • 0
この回答へのお礼

すいません。解決しました。

ありがとうございます。
今後もよろしくお願いします。

が、がんばりまーす!!

お礼日時:2004/09/17 16:57

試しましたが問題ありませんでした。



Sub test2()
MsgBox Day(Range("A1"))
End Sub

としたらなんとでますか?
    • good
    • 0
この回答へのお礼

error123 様ありがとうごとうございます。

すいません。質問ミスでした。

If Day(Range("A1")) = 30 Or 31 Then

でうまくいきません。(30のみ場合はOKです)

Orの使い方が間違ってます???

すいません。ご指摘お願いします。

お礼日時:2004/09/17 16:48

テストしましたが、表示しませんよ。


ちなみに、A1に2004/9/30を入れれば、
yesが表示されます。
    • good
    • 0
この回答へのお礼

すいません。お騒がせです。
ありがとうございます。
一応2つのPCでテストしたんですが・・・

今後もよろしくお願いします。

お礼日時:2004/09/17 16:41

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