記録することによって見えてくるもの

For~Nextを使って繰り返し作業を自動化するExcelマクロの作成

かわべ
WRITER
 
この記事を書いている人 - WRITER -
かわべ
生誕:1969年 東京 生まれ 趣味:楽器演奏(St.Bass、E.Bass)     読書(ミステリー)     映画鑑賞(学生時代、映画館でアルバイト経験あり)
<スポンサーリンク>  
 

Excelで繰り返し処理を自動化するマクロのVBAでは、「DoLoop構文」と「ForNext構文」を使う機会が多いかと思います。

私は「DoLoop構文」を好んで使っているので、「ForNext構文」をあまり使っていませんが、経理事務用のExcelマクロを作成する時に、使う場合もあるかと思いますので簡単に記載します。

doloop_0

※ ForNextの間にEachを記述する構文ついては後日、記載します。

関連記事 Do~Loopを使って繰り返し作業を自動化するExcelマクロの作成


<スポンサーリンク>    
 

For~Next構文の基本

ForNextの基本的な記述を記載するため、DoLoopの記事で使用した次のExcelファイルを使います。

 

A列の2~10行目までの数値をC列に転記する記述すると次のとおりとなります。

fornext_2

 

 

Forの直後にはこの転記の命令を実行するための条件を記述するします。記述方法は次のとおりです。

 

For 初期値 to 最終値 (step 増加数)

 

stepは省略することが可能です。

省略した場合は、増加数は「1」となります。(※1)

 

今回は「lonYaを2から10まで1ずつ増やして実行する」という条件を記述しました。

 

条件を記述した次の行にはCellsを使って「C列の特定したセルにA列の同じ行にあるセルの数値を転記する」という記述をしてあります。実行すると次のとおりです。

 

fornext_3

 

※1 増加数について

経理事務では、セルの操作のために増加数について「1」を指定するケースが多いかと思いますが、小数点以下の数値を設定することもできます。

fornext_11

上記のとおり、変数varAa(型はVariant)を定義し、増加数を「0.432548」と記述してみました。

実行すると次のように表示されます。(4回目には、最終値「3」を超えるのでForNextの処理は終了します。)

fornext_12

 

最大行の指定

最初の例のようにA列に入力されているデータ数が10行と決まっていない場合に、入力されているデータの最大行の数値をForNext構文の最終値に指定する記述をしてみます。

先ほどよりデータ数を増やした次のようなシートを用意しました。

fornext_13

 

上記のシートの最大行の行数は「19」となります。

この最大行の行数を取得するため、変数lonYy(型はLong)を定義し、次のように記述すると、最大行の数値「19」をlonYyに代入することができます。

lonYy = ws1.Cells(Rows.Count, 1).End(xlUp).Row」

先ほどのForNext構文にlonYyを加えると次のような記述になります。

fornext_15

上記の記述を実行すると次のとおりとなります。

fornext_14

 

※2 私が記述したプログラムでは、確認のため、最後にlonYaの数値をMsgBoxを使って表示しています。

最大行(19行目)のA列の数値をC列に転記した後、再度、Next1つ数値が増加しますので、画面に表示される数値は、「20」となります。


■□◆◇ 編集後記 ◇◆□■

井ノ上先生が、私が欲しいトラックボールのマウスを3つも購入されていました。よく研究されています。安いものはそれなりの作りのようですが、3,000円ちょっとなら買いですね。

LINK Ex-it;ロジクールトラックボールM570、M570t、M570並行輸入版の比較。Windowsでもっともおすすめのマウス。

Pocket
このエントリーを Google ブックマーク に追加
LINEで送る

この記事を書いている人 - WRITER -
かわべ
生誕:1969年 東京 生まれ 趣味:楽器演奏(St.Bass、E.Bass)     読書(ミステリー)     映画鑑賞(学生時代、映画館でアルバイト経験あり)

報酬のお見積り

法人の顧問報酬と決算報酬を、前期の売上実績当期の売上予測でお見積もりすることができます。(※)

LINK 報酬お見積もり【法人用】 web

お名前やメールアドレスの入力は必要ありません。ウェブ上で簡単にお見積もりができます。

※ オプション料金は別途となります。

Copyright© J-musu-no-blog , 2014 All Rights Reserved.