No.3ベストアンサー
- 回答日時:
さらに失礼しました。
。。Day(CDate("March 1, " & CStr( 西暦 As Integer )) - 1)
が正解です
この回答への補足
#1だと1900年はうるう年って出ちゃうのに
これだと1900年でもうるう年ではないって正しく判定されますね。
同じように3/1-1が29日か判定しているのに。
不思議ですがどうしてなんですか?
VBAと関数は同じようで違う
というマジックなのでしょうか。
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の方法で判定しようと思います。
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.2
- 回答日時:
#1のmatsu_junです。
失礼しました。VBAでしたね。それならソース中にDay(CDate("March 1, " & CStr( 西暦 As Integer ) - 1)
の式を入れ、その返り値が29か28かで判別できます。
要するにその年の3月1日の前の日が2月29日なのか28日なのかを見るということです。
お探しの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はなんで先頭の0を消すん...
-
Excel元に戻す方法を教えてくだ...
-
【Microsoft Office Excel Comp...
-
Excelが固まってしまった。
-
西暦や和暦の表示をyyyymmdd表...
-
Excel 2019 のピボットテーブル...
-
【関数】スペースがいくつ入っ...
-
【Excel】セル内の時間帯が特定...
-
excelの不要な行の削除ができな...
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excelのセルを飛ばして入力する
-
Excel初心者です。 詳しい方、...
-
エクセルの行の抽出について質...
-
Excel初心者です。 詳しい方、...
-
【マクロ】エクセルにかいてあ...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシート クエリ関数 1...
-
エクセルで指定した日付、店舗...
-
Excelのグラフ軸について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
人月を時間にすると?
-
うるう年とは。
-
祝日と祝祭日
-
2024年のカレンダーは1996年の...
-
うるうの語源
-
月曜が祝日になる可能性は他の...
-
祝日と祭日について
-
週から月、月から年の換算
-
12月23日の一ヶ月後は1月21日で...
-
うるう日の2年後は昼夜逆転?
-
Excelで、日付けをセルに打ち込...
-
エクセルVBAで、うるう年の判定
-
【Excel97】経過日数の計算で、...
-
13日の金曜日になる確率
-
掛け算「9」のなぞ。
-
「例年」 と「平年」の違い
-
第2土曜日の翌日の日曜日
-
10,000,000,000秒をうるう年を...
-
表計算のifの条件(うるう年...
-
うるう年生まれの誕生日は・・・?
おすすめ情報