つかえるExcelマクロ[マクロルーティン#15](If文の使い方)ループ
この記事はマクロルーティン#15(If文の使い方)で書いたマクロを実践でつかえるマクロにする方法です。
◆かんたんなIf文
マクロルーティン#15(If文の使い方)で書いたマクロは次のようなイメージ図で、C2セルの金額によって右隣のセル(D2)に判定内容を入力するというものでした。
<コード>
If Range("C2").Value > 10000 Then
Range("D2").Value = "一万円より大きい"
End If
★このマクロのようにD2セルだけに特定した書き方から、D2, D3, D4, , , , ,と複数行を一気に判定したいと思いませんか。
◆If文を全ての行で実行させたい!完成イメージ図
◆書くコード
★赤点枠は上記◆かんたんなIf文で書いたコードをちょっと書き変えたコードです。黄色は今回追加したコードです。
<テキスト>
③Dim i As Long
②For i = 2 To 10
①If Range("C" & i).Value > 10000 Then
①Range("D" & i).Value = "一万円より大きい"
①End If
②Next
◆解説
まず、◆かんたんなIf文で書いたコードをみてみます。
If Range("C2").Value > 10000 Then
Range("D2").Value = "一万円より大きい"
End If
セルを固定して書かれているところに注目します。
"C2" と "D2" の個所ですね。2行目だけに固定されています。上記の完成イメージ図のように2行目から10行目までIf文を実行させたいので、2の部分を変動させるため " i " という変数に置き換えます。
→Range("C i ") と書きたいところですが、Cは文字列、i は変数なので、
➡Range("C" & i) と書きます。
・文字列はダブルクォーテーションで囲む
・文字列と変数を&でつなぐ
すると以下のように書けますね!
①If Range("C" & i).Value > 10000 Then
①Range("D" & i).Value = "一万円より大きい"
①End If
◆ i を2から10まで変動させる!
以下おさらい-----------------------------------------------------------------------
★関連記事<マクロルーティン#18(数式を入力せずに値だけを入力する)>
★関連動画<【マクロルーティン9】マクロで計算してシートに値を入力する>
----------------------ここまでおさらい。-----------------------------------------
変数 i を変動させるのに便利な 「For to Next」 を使いましょう!
②For i = 2 To 10 (→ i は2から10までの値をとります。)
①If Range("C" & i).Value > 10000 Then
①Range("D" & i).Value = "一万円より大きい"
①End If
②Next
このように書けば、i が2のとき①を実行、i が3のとき①を実行、i が4のとき①を実行・・・・i が10になるまで①が繰返し実行されます。
そして、i は今勝手に作った変数なので、i は変数で整数ですよ。とマクロ側に伝えておきます。
→③Dim i As Long (整数はLongと覚えておけば大丈夫です。)
できました!ねっ。
たった6行です。最初はこれをまねして書くことを続けていれば、だんだんわかってきますよっ!そしていつのまにか使えるようになります!
③Dim i As Long
②For i = 2 To 10
①If Range("C" & i).Value > 10000 Then
①Range("D" & i).Value = "一万円より大きい"
①End If
②Next
◆関連動画
この記事が気に入ったらサポートをしてみませんか?