マクロ(Excel VBA) 挫折しやすいポイント「繰り返し処理」に使う For文

シェアする

The following two tabs change content below.

松井 元(まつい はじめ)

静岡県三島市の松井会計事務所に勤務する理系税理士。 文理両方のスキルの融合を考えており、このブログは以下を中心に更新している。
●税金・会計に関すること
●IT(Excel、VBAなど)を使った業務効率化
●自分のこと(考え、私生活)

さらに詳細なプロフィールはこちら
松井会計事務所へのお仕事ご依頼・お問い合わせはこちら
税金・会計の無料メルマガはじめます

同じような作業を繰り返し実行する手間を省くために、プログラミングを行います。

そのためには、どのプログラム言語においても「繰り返し処理」のやり方を理解しなければなりません。

初めてプログラミングを経験する人が一番挫折しやすいと思われるポイントが、この「繰り返し処理」です。
最初はどうしても頭が混乱しやすいかと思います。。

今日は、Excel VBA での「繰り返し処理」の方法である For文について説明したいと思います。

レクタングル大 広告

1、同じ処理を繰り返すケース

例えば、下↓の表の1~12月の各月の売上高(C列)と売上原価(D列) のデータから、売上総利益を計算して E列に出力する場合を考えて見ます。

*この計算は、VBA を使わずに Excel の四則演算機能だけでもできることですが、ここでは敢えて VBA を使います。

その場合、VBE(エディタ)を開き(Alt + F11 で開く)以下のコードを記述します。

*VBE(エディタ)中では、1つの行の中で最初に出てくるカンマ「’」以降に書いた文字はコメントアウトされます
(プログラムとして機能しなくなる)。
私の場合、どのような処理を行っているか後で自分が見て分かりやすくするために使うことが多いです。
例:「’↓売上総利益の計算、出力’」

さて、冒頭に記述した

Dim Uriage ‘売上’
Dim Uriagegenka ‘売上原価’

これらは、変数を定義したものです。
「これから、これらの変数をつかいますよ!!」というのを、あらかじめ冒頭で示しておきます。

これらの定義をしなくてもプログラムは一応は機能します。
まぁ、ここではとりあえずのおまじないみたいなものと思って頂ければ良いです。

そして、「For i = 1 To 12」と「Next i」の間に記述した部分で、「1~12月分の売上総利益の計算と出力」という処理を行っています。

このプログラムを実行すると、一瞬で以下↓のように売上総利益が表示されます。

さて、最初にいきなりすべてのコードを書いてしまいましたが、一つ一つ順に説明していきたいと思います。

2、For 文を使わない場合

繰り返し処理の概念を理解するために、まず For 文を使わずに記述する場合を考えてみたいと思います。

まず、1月分の売上総利益の計算と出力を行うためには以下のようなコードを書きます。

セルの行番号と列番号の関係は下の図のようになります。

は売上の値をセル「C6」から読み込んでいます。

は売上原価の値をセル「D6」から読み込んでいます。

によって、先に読み込んだ売上(Uriage)と売上原価(Uriagegenka)から売上総利益を計算してセル「E6」に出力しています。
単純な引き算です。

一応説明しますと、売上から売上原価をマイナスしたものが売上総利益(粗利)になります。

お仕事のご依頼は、以下のリンク先にある個別のフォームよりお願い致します。
*リンク先は私が勤務する松井会計事務所の HP です。

◆税務・会計 顧問
◆税務・会計のスポットコンサルティング
◆経理業務効率化コンサルティング
◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン
◆東亜大学通信制大学院(法学専攻) 入試対策コンサル
◆その他のスポットコンサルティング(当ブログを読み何かご相談したい事項が出てきた方に向けたサービス)

セミナー開催要望がありましたら、以下のリンク先にある個別のフォームよりお願い致します。
◆セミナー開催要望

税金・会計についての無料メルマガをはじめます。配信をご希望させる方は以下のリンク先にあるフォームよりお願い致します
◆メルマガ登録

さて、以上で1月分のみの売上総利益の計算と出力の処理はできるようになりす。

プログラムを実行して確認してみましょう↓

さて、この処理を For 文を使わずに12ヶ月分繰り返すとどうなるでしょうか。

仮に6ヶ月分(1~6月)の計算をする場合、コードはこのようになります↓

売上と売上原価を読み込むセルの行数と、売上総利益を出力するセルの行数を1行ずつ順番に進めています。

売上で言えば、1月分の読込みの場合

としてセル「C6」から読み込んでいるのを、月数が増えるにしたがってセルの行数を1行ずつ追加していってます。

・2月分

・3月分

・4月分

・5月分

・6月分

売上原価の読込みと、売上原価の計算・出力も同様です。

さて、先に6ヶ月分のコードを書きましたがこれら12ヶ月分になるとさらに長くなってしまします。。。

3、For 文の使い方

上記のように同じ処理の繰り返しのコードを書く際に、12ヶ月分の読込みと計算をだらだら長く書いてしまうと記述だけで大変です。

そこでだいたいの場合、このような繰り返し処理には「For文」を使うことになります。

For文はこのように↓ For と Next の間にコードを記述することになります。
冒頭で書いたものと同じコードですがこのようになります。

For i = 1 To 12  は
「変数 i を1から12まで1ずつ増加させる」という処理を行っており

Next i  は
「次の i に進む(今が i=2 ならば i=3)」という処理を行っています。

上記の「For i = 1 To 12」と 「Next i」の間で i の値は一定になります。

売上の読込みで言えば
1月分の読込みの場合 i=1 となり

と同じ意味になります。

2月分の読込みの場合 i=2 となり

と同じ意味になります。

このように i の値を1~12まで1つずつ増やしていき12ケ月分の処理を行うことになります。

Excel 上での行数は、i の数よりも 5 大きいので行数の指定の仕方は
「5 + i 」と記述することになります。

i の数と、処理を行う行数の関係はこのように↓なります。

i の値が1つ増えるに従って、シート上で処理を行う行数も1行ずつ増えていくという感覚を身に付けて頂きたいと思います。

4、まとめ

以上、「繰り返し処理」を行うために必要な For 文について説明しました。

「i の値が1つずつ増えていき、処理を繰り返す」という概念は、最初はなかなかとっつきづらくプログラミングをはじめたばかりの人は挫折しやすいポイントだと思います。

しかし、繰り返し処理でこそ Excel VBA は最大限の効力を発揮するので、この For文を身に付けて使いこなせるようになれば、様々なことに応用できるようになります!!

お仕事のご依頼は、以下のリンク先にある個別のフォームよりお願い致します。
*リンク先は私が勤務する松井会計事務所の HP です。

◆税務・会計 顧問
◆税務・会計のスポットコンサルティング
◆経理業務効率化コンサルティング
◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン
◆東亜大学通信制大学院(法学専攻) 入試対策コンサル
◆その他のスポットコンサルティング(当ブログを読み何かご相談したい事項が出てきた方に向けたサービス)

セミナー開催要望がありましたら、以下のリンク先にある個別のフォームよりお願い致します。
◆セミナー開催要望

税金・会計についての無料メルマガをはじめます。配信をご希望させる方は以下のリンク先にあるフォームよりお願い致します
◆メルマガ登録
税理士試験まとめ、税法論文の書き方

————————————————

税理士試験についてのまとめはこちらです!

税法2科目免除大学院についてのまとめはこちらです!

kindle電子書籍を出版しました。

税理士試験の税法2科目免除のために大学院で税法論文(修士論文)を書いた経験を元に、大学院生としての目線から税法論文の書き方を体系化した書籍です↓

大学院での税法論文の書き方

本書籍の内容についてはこちらの記事をご確認下さい。

お問い合わせ・フォローボタン

———————————

よろしければフォロー下さい↓

Twitter フォローボタン:

Feedly フォローボタン:
follow us in feedly

Facebookページ:
*いいね!を押して頂くと更新情報が届きます。

レクタングル大 広告
レクタングル大 広告
関連コンテンツ



シェアする

フォローする