超初心者でもわかるエクセルVBA(マクロ)

ループ(処理の繰り返し)

今回はループについて解説します
ループとは同じような処理の繰り返しのことです
例えば以下の画像のように「繰り返し」という文字を10個表示させたい場合
あなたならどうしますか?

もちろん

Sub kurikaeshi()
Worksheets(1).Cells(1, 1) = "繰り返し"
Worksheets(1).Cells(2, 1) = "繰り返し"
Worksheets(1).Cells(3, 1) = "繰り返し"
Worksheets(1).Cells(4, 1) = "繰り返し"
Worksheets(1).Cells(5, 1) = "繰り返し"
Worksheets(1).Cells(6, 1) = "繰り返し"
Worksheets(1).Cells(7, 1) = "繰り返し"
Worksheets(1).Cells(8, 1) = "繰り返し"
Worksheets(1).Cells(9, 1) = "繰り返し"
Worksheets(1).Cells(10, 1) = "繰り返し"
End Sub

とVBEに書き込んでもまったく問題はありません
しかし、このやり方だと入力する文字数も多く大変です
VBAにはこのような繰り返しの作業をやってくれる便利な命令があります
以下のように書き換えてみましょう

Sub kurikaeshi()
For i = 1 To 10
Worksheets(1).Cells(i, 1) = "繰り返し"
Next i
End Sub

どうでしょうか?見た目もすっきりして、入力する手間も減りました
一行ずつ解説していきます
Sub kurikaeshi() ←kurikaeshiという処理のまとまりを作るよ
For i = 1 To 10 ←iという名前の入れもの(変数)を作ってその中に1を代入するよ。そしてiが10を超えるまで以下の処理を繰り返すよ
Worksheets(1).Cells(i, 1) = "繰り返し" ←ワークシート1番の行番号iの列番号1に「繰り返し」の文字を表示して
Next i ←iが10を超えていなければiの値を+1して上の処理に戻るよ。もしiが10を超えたら下の行に抜けるよ(処理を終えるよ)
End Sub ←kurikaeshiという処理のまとまりの終わりだよ


チャレンジ[実際に書いてみよう!]
こちらのサンプルを使用して練習してみましょう。必要に応じてダウンロードしてください

練習用エクセルデータをダウンロードする

for~next文を使って以下の画像のように行番号3、列番号1から行番号12、列番号1にかけて連番を振ってください

答え
Sub kurikaeshi()
For i = 1 To 10
Worksheets(1).Cells(i + 2, 1) = i
Next i
End Sub

一行ずつ解説します
Sub kurikaeshi() ←kurikashiという処理のまとまりを作るよ
For i = 1 To 10 ←iという名前の入れもの(変数)を作ってその中に1を代入するよ。そしてiが10になるまで下の処理を繰り返すよ
Worksheets(1).Cells(i + 2, 1) = i ←ワークシート1番の行番号i+2(3行目から開始するため+2することを忘れずに)、列番号1にiの中身(処理のたびにiが1ずつ増えていくので結果連番になる)を表示して
Next i ←iが10以下ならiの値を+1して上の処理に戻るよ。もしiが10を超えたら下の行に抜けるよ(for~next処理を終えるよ)
End Sub ←kurikaeshi処理の終わり


前の記事へ ホームへ戻る 次の記事へ
©2023 TSM-engineering.