60点以下の人に赤色をつけるVBAのコード
下記のコードは60点以下の人のセルを赤色にぬりつぶすVBAコードです。
sub name_score() dim names as variant names = array("taguti", "fkoji", "hasimoto", "tanaka", "higasi", "sajio", "kojima", "midori", "kobayasi") dim scores as variant scores = array(52,82,99,32,48,62,72,58,59) for i = 0 to 8 cells(i + 1, 1).value = names(i) cells(i + 1, 2).value = scores(i) if cells(i +1, 2).value < 60 then cells(i + 1, 1).Interior.ColorIndex = 3 end if next i end sub
上の画像はプログラムを実施した結果です。
コラム: VBAでは要素とインデックスを同時に取ることはできない?
rubyではeach_with_indexといったような配列の要素とインデックスを同時に取得できる機能があります。pythonはメソッドがなくても二重forループが使えます。ですが、VBAはfor ~ nextのnextがあるおかげで二重ループが使えないです。
とはいえ 配列名(i) で要素がとれるので、とくにできないことはない感じはします。
訂正(2018/9): 普通に使えます
VBAならドットインストールがおすすめです。
Excel VBA入門 (全19回) – プログラミングならドットインストール
コメント