見出し画像

つかえるExcelマクロ[マクロルーティン#15](If文の使い方)ループ

この記事はマクロルーティン#15(If文の使い方)で書いたマクロを実践でつかえるマクロにする方法です。

◆かんたんなIf文

マクロルーティン#15(If文の使い方)で書いたマクロは次のようなイメージ図で、C2セルの金額によって右隣のセル(D2)に判定内容を入力するというものでした。

画像1

<コード>
If Range("C2").Value > 10000 Then
 Range("D2").Value = "一万円より大きい"
End If

★このマクロのようにD2セルだけに特定した書き方から、D2, D3, D4, , , , ,と複数行を一気に判定したいと思いませんか。


◆If文を全ての行で実行させたい!完成イメージ図

画像2


◆書くコード

画像3

★赤点枠は上記◆かんたんな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まで変動させる!

以下おさらい-----------------------------------------------------------------------

画像4

★関連記事<マクロルーティン#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

◆関連動画


この記事が気に入ったらサポートをしてみませんか?