No.2
- 回答日時:
#1のmatsu_junです。
失礼しました。VBAでしたね。それならソース中にDay(CDate("March 1, " & CStr( 西暦 As Integer ) - 1)
の式を入れ、その返り値が29か28かで判別できます。
要するにその年の3月1日の前の日が2月29日なのか28日なのかを見るということです。
No.3ベストアンサー
- 回答日時:
さらに失礼しました。
。。Day(CDate("March 1, " & CStr( 西暦 As Integer )) - 1)
が正解です
この回答への補足
#1だと1900年はうるう年って出ちゃうのに
これだと1900年でもうるう年ではないって正しく判定されますね。
同じように3/1-1が29日か判定しているのに。
不思議ですがどうしてなんですか?
VBAと関数は同じようで違う
というマジックなのでしょうか。
No.4
- 回答日時:
うるう年の定義は「4で割り切れて100で割り切れない年はうるう年である。
または400で割り切れる年はうるう年である。」ということであるとして、A1セルに数値(年)を入れてあるとします。Sub TEST01()
y = Cells(1, 1).Value
If ((y Mod 4) = 0 And (y Mod 100) <> 0) Or (y Mod 400) = 0 Then
MsgBox y & "年はうるう年です"
Else
MsgBox y & "年はうるう年ではありません。"
End If
End Sub
if文の入れ子にしないとダメかと思っていたのですが
If ((y Mod 4) = 0 And (y Mod 100) <> 0) Or (y Mod 400) = 0 Then
の1文で聞けるんですね。
ありがとうございます
No.5
- 回答日時:
#1,2,3のmatsu_junです。
ご指摘いただくまで知りませんでしたが、シート上のDATE関数については、Excelのバグのようです。
どちらにしても1900年の1月1日を起点(Macの場合は1904年)としていることもありますし、「そんな昔のこと知らないよ」というスタンスなのかもしれませんね。ちなみにVBAではそのような問題は起きないと明言されています。
私自身も勉強になりました。大昔についてはDATE関数は使わないようにします。
参考URL:http://support.microsoft.com/default.aspx?scid=k …
参考URLありがとうございます。
大変よく分かりました。
VBA の WEEKDAY 関数では正しい値が返ります。
とも、書いてありますね。
#4さんの
=IF(OR(MOD(A1,400)=0,AND(MOD(A1,4)=0,MOD(A1,100)<>0)),"うるう年","うるう年ではない")
で判定するように書かれておりましたね。
#3の方法で判定しようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセル関数】アルファベットで以上だったらカウントする 4 2022/07/09 14:07
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Excel(エクセル) Powershell エクセル検索 完全一致の方法 1 2022/06/05 20:19
- Excel(エクセル) セルを数式で指定する方法 5 2022/04/13 16:55
- Excel(エクセル) エクセルにサムネイル画像組み込み 2 2022/09/02 17:13
- その他(プログラミング・Web制作) 「問題も答えも画像」のクイズを簡単に作れるもの何かありませんでしょうか? 1 2022/05/30 17:29
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
- Windows 10 パソコンのプログラムを自動で起動させる方法 5 2023/03/16 00:08
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】適切な文字数の数字を...
-
【関数】先頭だけにある、半角...
-
Excelのチェックボックスの使い...
-
エクセル 白黒印刷で白線を印刷...
-
LOOKUP関数を使えばいいのでし...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
-
時間によってファイル名が変わ...
-
Excelのpivotについて質問です
-
excelの不要な行の削除ができな...
-
Excelで、決まった行を繰り返し...
-
WPS OFFICEでの縦書きについて
-
UNIQUE関数が使えないバージョ...
-
エクセルの条件付き書式につい...
-
エクセルで「-0.0」と表示さ...
-
Aというブックの1というシート...
-
VBA Private Sub Worksheet_Cha...
-
【マクロ】ファイル名の変更に...
-
【マクロ】エクセルにかいてあ...
-
excel で二つのどちらかを選ぶ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報