ID非公開

2021/9/24 23:20

33回答

日付列を比較して、後のもののセルを赤くするようなとき、日付列の取得はどのように書けばできますか?

補足

if文での日付比較や赤く塗るなどの文はできるのですが、どうしても日付の列取得ができません。

Excel | Visual Basic50閲覧

ベストアンサー

1
画像

1人がナイス!しています

ThanksImg質問者からのお礼コメント

本当にありがとうございます!

お礼日時:9/25 22:47

その他の回答(2件)

1

B列とC列の状況が不明なのでくどい書き方ですが、こんなことをやりたいのでしょうか。 B列、C列それぞれの最終行を求め、大きい方を最終行とします。 同じ行の値が日付に変換できる場合は大小を比較し、大きい方(後の日付の方)を赤く塗り潰します。 Sub sample() B_MAX = Range("B" & Rows.Count).End(xlUp).Row C_MAX = Range("C" & Rows.Count).End(xlUp).Row CNT_MAX = Application.Max(B_MAX, C_MAX) With Range("B1") .Resize(CNT_MAX, 2).Interior.Color = xlNone For I = 1 To CNT_MAX If IsDate(.Offset(I - 1)) And IsDate(.Offset(I - 1, 1)) Then If CDate(.Offset(I - 1)) > CDate(.Offset(I - 1, 1)) Then .Offset(I - 1).Interior.Color = vbRed ElseIf CDate(.Offset(I - 1)) < CDate(.Offset(I - 1, 1)) Then .Offset(I - 1, 1).Interior.Color = vbRed End If End If Next End With End Sub

1人がナイス!しています

0

>日付列の取得 ?何を指しているのかが判らない EXCEL上では日付はシリアル値(数値データ)で取り扱っているので普通に比較演算子で判定はできる、日付だからといってなにか特殊な操作の必要性はない もしかして、文字列として日付を扱っているのかな? その場合にはシリアル値としての日付データに変換が必要になる