- ベストアンサー
エクセルVBAでお願いします。
エクセル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なので問題ないと思うのですが、理由がわかりません。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ORの使い方 間違ってますよ (^^) If Day(Range("A1")) = 30 Or Day(Range("A1")) =31 Then これでどうでしょうか?
その他の回答 (3)
- snoopy64
- ベストアンサー率42% (337/793)
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 でうまくいきません。 お騒がせしていますが、よろしくお願いします。 ホント、すいません。
- error123
- ベストアンサー率21% (54/247)
試しましたが問題ありませんでした。 Sub test2() MsgBox Day(Range("A1")) End Sub としたらなんとでますか?
お礼
error123 様ありがとうごとうございます。 すいません。質問ミスでした。 If Day(Range("A1")) = 30 Or 31 Then でうまくいきません。(30のみ場合はOKです) Orの使い方が間違ってます??? すいません。ご指摘お願いします。
- S-Fuji
- ベストアンサー率36% (592/1624)
テストしましたが、表示しませんよ。 ちなみに、A1に2004/9/30を入れれば、 yesが表示されます。
お礼
すいません。お騒がせです。 ありがとうございます。 一応2つのPCでテストしたんですが・・・ 今後もよろしくお願いします。
お礼
nagare 様 早速のお返事ありがとうございます。 ありがとうございました。お騒がせしました。 この辺の基本的なことが・・・・ がんばりますので、今後ともよろしくお願いします。 ありがとうございました。