
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ランキング
-
9月17日でサービス終了らし...
-
エクセルのdatedif関数を使って...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
【マクロ】【配列】3つのシー...
-
【関数】同じ関数なのに、エラ...
-
【マクロ】列を折りたたみ非表...
-
vba テキストボックスとリフト...
-
エクセルのVBAで集計をしたい
-
【マクロ】EXCELで読込したCSV...
-
【条件付き書式】シートの中で...
-
【マクロ】オートフィルターの...
-
ページが変なふうに切れる
-
【マクロ】アクティブセルの時...
-
【マクロ】3行に上から下に並...
-
エクセルの循環参照、?
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】A列にある、日付(本...
-
エクセル
-
エクセルに、105と入力すると、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
人月を時間にすると?
-
掛け算「9」のなぞ。
-
13日の金曜日のまわってくる周期
-
1991年10月の日曜日の日にちを...
-
うるう年
-
エクセルで月間カレンダー
-
腕時計の日付が元通りになる日...
-
366日を1年/0ヶ月/1日にする方法
-
2024年のカレンダーは1996年の...
-
うるうの語源
-
日付けと曜日が決まれば年が特...
-
12月23日の一ヶ月後は1月21日で...
-
休暇を引いた日付を表示させたい。
-
来年のうるう日に結婚します(確...
-
Excelで、日付けをセルに打ち込...
-
週から月、月から年の換算
-
モジュロ演算とは?
-
算数の問題でわからないとこと...
-
エクセルVBAで、うるう年の判定
-
13日の金曜日になる確率
おすすめ情報