VBAでの変数の使用と繰り返しについて

スポンサーリンク

ある条件の間の繰り返し処理

よくマクロの勉強をしていて、つまずく所の1つに変数を用いて繰り返しを使えるようになるというものがあります。私も独学で勉強した際にかなり苦戦したので、今日は変数の使い方と繰り返しの方法について書きます。

プログラミングでの変数とは

IT用語辞典(http://e-words.jp/w/%E5%A4%89%E6%95%B0.html)には「変数」が以下のように書かれています。

変数とは、プログラムのソースコード中で、データを一時的に記憶しておくための領域に固有の名前を付けたもの。

こういう初めて変数を扱う人にはイメージがわきにくいと思います。

変数はVBAでコードを書くときに、繰り返し作業のコードを簡略化させる場合や、条件によって作業を切り替えたい場合などに役立つものです。
本当はもっと色々な意味がありますが、まずはその認識で取り組めば理解しやすいと思います。

前回の点数表に色づけするVBAを基に、変数を用いたVBAコードを作成してみます。

①前回の内容

以下の表があった際に、80点以上の点数をとっている人の名前のセルに黄色く色づけするコードを前回作成しました。

Sub 色を分ける

If Cells(1,2) >= 80 Then ’B1セルが80以上なら
Cells(1,1).Interior.ColorIndex = 6 ’A1セルを黄色に塗る。
End If ’Ifの作業を終了する。
If Cells(2,2) >= 80 Then ’B2セルが80以上なら
Cells(2,1).Interior.ColorIndex = 6 ’A2セルを黄色に塗る。
End If ’Ifの作業を終了する。
If Cells(3,2) >= 80 Then ’B3セルが80以上なら
Cells(3,1).Interior.ColorIndex = 6 ’A3セルを黄色に塗る。
End If ’Ifの作業を終了する。
If Cells(4,2) >= 80 Then ’B4セルが80以上なら
Cells(4,1).Interior.ColorIndex = 6 ’A4セルを黄色に塗る。
End If ’Ifの作業を終了する。
If Cells(5,2) >= 80 Then ‘B5セルが80以上なら
Cells(5,1).Interior.ColorIndex = 6 ’A5セルを黄色に塗る。
End If ’Ifの作業を終了する。
If Cells(6,2) >= 80 Then ‘B6セルが80以上なら
Cells(6,1).Interior.ColorIndex = 6 ’A6セルを黄色に塗る。
End If ’Ifの作業を終了する。

End Sub

このコードは作業する行が多くなるとムダに長くなるという問題があります。変数を用いることでコードを短く短縮し、見やすくします。

②変数で置き換える場所

変数は繰り返しを行う部分に使います。
前回作成したコードは赤い部分を除いて以下の内容の繰り返しになります。

If Cells(1,2) >= 80 Then ’B1セルが80以上なら
Cells(1,1).Interior.ColorIndex = 6 ’A1セルを黄色に塗る。
End If ’Ifの作業を終了する。

赤で記された部分は1~6まで変更する部分になります。
こういう繰り返しの中の一部分変更する場所を変数で置き換えるのが基本操作です。

③変数の宣言

変数は日本語でも英語でもほぼどんなものでも文字列なら使えます。
よく数字を表す変数で使われるのはi,kなどの文字です。

変数を使う時には事前に「これが変数ですよ」と記しておくコードが必要になり、それを「変数の宣言」といいます。今回はiという文字を変数として使用します。

Dim i

変数の宣言のコードはこれでOKです。他にその変数の範囲を表すコードを追加することもできますが、よくわからなければこのままでも大丈夫です。変数の範囲を表すものを「型」といいます。
この内容に関してはまた後日お伝えします。

④変数を用いたコードの作成

変数を使い、先ほどのコードを以下のように書き換えます。

Dim i ’変数としてiを使う
i = 1 ’iを1とする
If Cells(‘i,2) >= 80 Then ’(1,2)セルが80以上なら
Cells(‘i,1).Interior.ColorIndex = 6 ’(1,1)セルを黄色に塗る。
End If ’Ifの作業を終了する。

⑤繰り返しのコード作成

これをこのままコピペを使ってiの値を変更しながら繰り返してもよいのですが、それだと変数を使う意味があまりなくなってしまいます。そこで繰り返しのコードを用いて全体を簡略化します。

繰り返しのコードは大きく2つありますが、今回はFor~Next構文を用います。
使い方は以下のようになります。

For i = 1 to 6
実行したい処理
Next i

これでiに1~6まで順番に代入して、実行したい処理を繰り返し行うコードが作れます。
このコードを先ほどのコードと組み合わせて以下のようにします。

Sub 繰り返し実行Dim i ’変数としてiを使う
For i = 1 to 6 ’iを1から6まで順に増やす
If Cells(‘i,2) >= 80 Then ’(i,2)セルが80以上なら
Cells(‘i,1).Interior.ColorIndex = 6 ’(i,1)セルを黄色に塗る。
End If ’Ifの作業を終了する。
Next i

End Sub

一番最初にiを変数として宣言します。

次にFor~Next構文を用いて、作業内容を繰り返すコードを入れます。

For~Next構文の繰り返しの中にIf~End If構文を用いたコードを書き、条件分岐を行う作業を繰り返すコードを作成します。

繰り返し処理のコードのルール

繰り返しのコードを使うと便利なのが、データが100個あろうが10000個あろうが、
Forの後の数字を入れ替えるだけで簡単にコードを書き換えることができます。

For i = 1 to 100

For i = 1 to 10000

ちなみに1行おきに実行する場合は下記のように”Step 2”と記入します。(2行おきなら”Step 3”)

For i = 1 to 99 Step 2

この記載でiは1,3,5…と奇数だけで99まで進みます。

変数を使った繰り返しと条件分岐を覚えると一気に作業できる幅が増え、プログラムを作るのが楽しくなってきます。ぜひ楽しんでコードを作ってみてください。

おすすめ書籍 amazonicon Amazon rakutenicon 楽天 Yahooicon Yahoo検索
amazoniconAmazon
rakutenicon楽天Kobo電子書籍ストア
続 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,527
rakutenicon楽天ブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本(続) 最初からそう教えてくれればいいのに! Excel [ 立山秀利 ]
価格:2,808
rakuteniconbookfan 2号店 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本/立山秀利【1000円以上送料無料】
価格:2,376
rakutenicon楽天ブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! Excel [ 立山秀利 ]
価格:2,376
rakuteniconブックオフオンライン楽天市場店
【中古】 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに!Excel2007/2003対応 /立山秀利【著 【中古】afb
価格:1,320
rakuteniconHMV&BOOKS online 1号店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに!Excel2007 / 2003対応 / 立山秀利 【本】
価格:2,376
rakuteniconKSC
『中古』続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
価格:6,989
rakutenicon楽天Kobo電子書籍ストア
デバッグ力でスキルアップ! Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,236
rakuteniconぐるぐる王国DS 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
rakutenicon楽天Kobo電子書籍ストア
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,138
rakuteniconクロネコ書店
【中古】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本—最初からそう教えてくれればいいのに!Excel2007/2003対応【中古】
価格:3,330
rakuteniconネットショップ駿河屋 楽天市場店
【中古】単行本(実用) ≪コンピュータ≫ Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 / 立山秀利【中古】afb
価格:1,570
rakuteniconぐるぐる王国 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
rakuteniconbookfan 1号店 楽天市場店
【店内全品5倍】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本/立山秀利【3000円以上送料無料】
価格:2,376
rakuteniconコンプリートブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
rakuteniconドラマ楽天市場店
【新品】【本】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 立山秀利/著
価格:2,376
rakuteniconECJOY!プレミアム楽天市場店
秀和システム Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! 立山秀利/著
価格:2,376
rakutenicon楽天Kobo電子書籍ストア
続々 Excel VBAのプログラミングのツボとコツがゼッタイにわかる本【電子書籍】[ 立山秀利 ]
価格:2,430
rakuteniconKSC
『中古』ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
価格:6,468
rakuteniconKSC
『中古』続々ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本
価格:10,788
rakuteniconコンプリートブックス
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
rakuteniconbookfan 2号店 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利【1000円以上送料無料】
価格:2,808
rakuteniconぐるぐる王国 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
rakuteniconVALUE BOOKS
【中古】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! Excel 続 /秀和システム/立山秀利 (単行本)【年末 セール SALE 対象商品】
価格:758
rakuteniconECJOY!プレミアム楽天市場店
秀和システム Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 最初からそう教えてくれればいいのに! 立山秀利/著
価格:2,808
rakuteniconbookfan 1号店 楽天市場店
【店内全品5倍】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利【3000円以上送料無料】
価格:2,808
rakuteniconブックオフオンライン楽天市場店
【中古】 続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! /立山秀利【著】 【中古】afb
価格:1,264
rakuteniconVALUE BOOKS
【ポイント 10倍】【中古】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに! Excel 続 /秀和システム/立山秀利 (単行本)【年末 セール SALE 対象商品】
価格:758
rakuteniconドラマ楽天市場店
【新品】【本】Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 立山秀利/著
価格:2,808
rakuteniconぐるぐる王国DS 楽天市場店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
Yahooicon京都大垣書店Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 / 立山 秀利 著
価格:2,808
Yahooiconbookfanプレミアム
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 / 立山秀利
価格:2,808
Yahooiconbookfan Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利
価格:2,808
Yahooiconbookfanプレミアム
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 / 立山秀利
価格:2,376
Yahooiconbookfan Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本/立山秀利
価格:2,376
YahooiconHonya Club.com Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続/立山秀利
価格:2,808
Yahooiconぐるぐる王国 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
YahooiconHMV&BOOKS online Yahoo!店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 最初からそう教えてくれればいいのに!Excel2007 /
価格:2,376
Yahooiconぐるぐる王国 スタークラブ
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
Yahooiconぐるぐる王国2号館 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
Yahooiconぐるぐる王国DS ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続
価格:2,808
Yahooiconぐるぐる王国 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconぐるぐる王国 スタークラブ
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconぐるぐる王国2号館 ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconぐるぐる王国DS ヤフー店
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本
価格:2,376
Yahooiconドラマ書房Yahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 立山秀利/著
価格:2,808
YahooiconドラマYahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 続 立山秀利/著
価格:2,808
YahooiconWINDY BOOKS on line
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本  続
価格:2,808
Yahooiconドラマ書房Yahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 立山秀利/著
価格:2,376
YahooiconドラマYahoo!店
新品本/Excel VBAのプログラミングのツボとコツがゼッタイにわかる本 立山秀利/著
価格:2,376

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする