セルの状態によって条件分岐!
今回は、セルの状態を判断する方法をいくつか紹介していきます。
A列に入っているデータを一つ一つみて、
2行目に入っている条件に当てはまれば、
その列にマークを付けて行きたいと思います。
数字を判断するものは、あまり問題無いかと思います。
比較演算子(= , >= , <= , <>)を使って.Valueに対しての比較をしています。
セルの色を判断している箇所があります。
黄色セルだったら・・・という、
If Cells(i, 1).Interior.ColorIndex = 6 Then
です。
セルの色を判断する手段は他にもありますが、
今回はInteriorクラスのColorIndexプロパティを使っていきます。
ColorIndexというのは、Excelの色には予め番号がつけてあり、
それを取得したり、設定したりできるプロパティです。
取得も設定も出来るので、
Msgbox Cells(2,3).Interior.ColorIndex
とすれば、B3のセルの色番号をダイアログボックスで表示することが出来ます。
逆に、
Cells(2,3).Interior.ColorIndex = 6
とすれば、B3セルに6番の色(黄色)を設定することが出来ます。
何番が何色かは、Web検索すればすぐに分かりますが、
僕はよく、「マクロの記録」やMsgbox、Debug.Printを使って確認しています。
このコードでも使用していますが、「色なし」は-4142を設定することになります。
さて、コード実行をすると以下のように該当箇所に"○"が付きます。
これらはセルの状態を判断するごく一部です。
あとは応用次第で、
・計算してXXになるセル
・偶数、奇数のセル
・フォントサイズや書式で判断
・xxxxの文字列を含むセル
などなど、関数や計算を応用すれば、いくらでも判断していくことが出来ます。
「何がしたいか」と「何が出来るか」が分かってくれば、
あとは応用次第、、ということになります。
全てを覚える必要はありません。
VBA辞典やWEBで検索しつつでも散らばったアイディアをまとめていければ、
徐々に出来ることが分かってくると思います。