A列とB列に入っている日付データを比較して、最近の方を
C列に転記するマクロです。(空欄やNULL等もある場合)
基本は、講座内で勉強したデータ取得の方法(テキストのP31~)
での基本構文
a = ActiveCell.Value
を用いて取得した日付を、これも講座内のエラー対処の中で
ちょっと触れました
On Error Resume Next
という構文(テキストのP62)と、Err.Number というものを
組み合わせて使うことで、空欄やNULL等にも対応することが
できます。
具体的には、
まず、日付データ専用の箱(変数)を2つ用意しておいて
Dim a As Date
Dim b As Date
次に、エアートラップを掛けます。
On Error Resume Next
あとは、比較するまず一方のセルからデータを取得して
Range("A1").Select '←比較する日付データのセルを指定
a = ActiveCell.Value
その直後に
If Err.Number <> 0 Then a = "1988/12" '←もし、空欄やNULL等のエラー値だったら最小値を入れておく
というIF文の処理を行います。
そして、もう一方のセルでも同じことをやって
Range("B1").Select
b = ActiveCell.Value
If Err.Number <> 0 Then b = "1988/12"
最後に、取得したaとbをLesson7のIF文の基本に基づいて大小を
比較すればOKですね。
If a > b Then
'Aを表示する処理
Else
'Bを表示する処理
End If
で、そこまで出来たら最後にこれに行数分処理するためのループ
の処理(Lesson6)を、テキストP69の16番の構文を使って
回してあげれば完成です。
ただし、ループの中の処理では都度行数が変化していきますので
Range("A1").Select
といった部分の行数を示す数字の部分に関しては、ループ変数の
i に置き換えて(可変にして)
Range("A" & i).Select
といった具合に直す必要があります。(B列とC列も同じです。)
最新の画像[もっと見る]
- 80代の年寄りにVBAが出来るわけがない? 3年前
- 鎌倉殿の13人ー義経の逆落としの地形 3年前
- 鎌倉殿の13人ー義経の逆落としの地形 3年前
- 鎌倉殿の13人ー義経の逆落としの地形 3年前
- 鎌倉殿の13人ー義経の逆落としの地形 3年前
- 鎌倉殿の13人ー義経の逆落としの地形 3年前
- 関ケ原の合戦場をデジタルマップで見ると 3年前
- 関ケ原の合戦場をデジタルマップで見ると 3年前
- 関ケ原の合戦場をデジタルマップで見ると 3年前
- 上田城の3Dデジタルマップ 3年前