【VBA】For〜Nextでループ処理を作ろう!【Excel】

Excel_VBA

みなさんこんにちは、現役エンジニアのサメハックです

未経験からWebエンジニアに転職し、
現在正社員として5年働いたのちフリーランスとして独立しました。

1分で理解できるVBA講座シリーズです。

今回はについて学んでいきましょう!

駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!

この記事を読むと・・・
  • 1分でFor~Nextのループ処理が作れる
1分で理解できるVBA講座シリーズはじめっ!

前準備

マクロを有効にする

Excelファイルを開き、
ファイル→オプション→トラストセンター→トラストセンターの設定→マクロの設定
という順に進み、
VBAが有効な場合にExcel4.0のマクロを有効にする
という項目にチェックを入れてください。

VBEの起動

Excelファイルを開いた状態でAlt+F11を押してVBEを開いてください

モジュールの作成

挿入→標準モジュール
という順に操作すると自動的にモジュールが開くので、ここにコードを記述します。

For〜Nextを使おう

' Long型の変数iを宣言
Dim i As Long

' iに代入する値の範囲(行番号)を決める
For i = 開始行数 To 終了行数
    ' 繰り返したい処理
Next

For〜Nextの間に処理を記述することで
所定の処理を繰り返すことが出来ます。

iには多くのケースで行数が入るよ!

実際に作ってみよう!

ここではこのような表を用意しました。

このB列に上から1,2,3とセル更新する
マクロを動かしてみましょう。

Sub ForNextを使ったループ処理()
    ' Long型の変数idを宣言
    Dim id As Long
    'idの初期値に1を設定
    id = 1
    
    ' Long型の変数iを宣言
    Dim i As Long
    ' iに5~7を順番に代入
    For i = 5 To 7
        ' B列のi番目にidを設定
        Cells(i, "B") = id

        'idをカウントアップする
        id = id + 1
    Next
End Sub

実行すると正しく値が入ることがわかりました。

ポイントはidの宣言とカウントアップです。

iの値をIDに入れてしまうと、
行数がそのまま入力されてしまうので
別途宣言し、ループごとに値を更新する必要があります。

まとめ

  • ループ処理を行うにはFor〜Next構文を使う
  • Dim i As Longは定型文として覚えてしまう

満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈

タイトルとURLをコピーしました