Top > 繰り返しと条件文

VBA通信教材申込み

VBA課題解決型実践塾セミナー内容

申込 ヤフーショッピング

繰り返しと条件文

繰り返しと条件文

エクセルをデータベースとして使うために繰り返しと条件文を使います。
VBA実践塾はデータの活用と合理化が目的ですので、早く繰り返しと条件文
をマスターして自動車を運転するように使ってください。
そのためには訓練することが大事です。
(1)繰り返しの使い方
(2)列の繰り返しの使い方
(3)2重ループ繰り返しの使い方
(4)条件文の付いた繰り返しの使い方

(1)繰り返しの使い方

繰り返しと条件文

セルを使う計算式では
合計の計算式は
Cells(5, 2) = Cells(2, 2) + Cells(3, 2) + Cells(4, 2)としました。
繰り返しの勉強のためにあえてCells(5, 2)を変数と考えて
合計は最初0とします。
大阪を合計に加算する・名古屋を合計に加算する・東京を合計に加算する
と6000になります。
Cells(5, 2) = Cells(5, 2) + Cells(2, 2)
Cells(5, 2) = Cells(5, 2) + Cells(3, 2)
Cells(5, 2) = Cells(5, 2) + Cells(4, 2)
このようにして合計を計算していることがわかればよく出てくる
i=i+1も理解できたことになります。
代入という意味を理解してください。
Sub keisan1()
  Cells(5, 2) = 0
  Cells(5, 2) = Cells(5, 2) + Cells(2, 2)
  Cells(5, 2) = Cells(5, 2) + Cells(3, 2)
  Cells(5, 2) = Cells(5, 2) + Cells(4, 2)
End Sub
Cells(5, 2) = 0の意味わかりますかね。わからなければメールをしてください。
3行縦に並べば繰り返しがわかりやすくなってきます。
行の2,3,4が変化することに注目してください。
Cells(5, 2) = Cells(5, 2) + Cells(i, 2)
この式のiを2から加算していけばOKですね。
Sub keisan1_1()
  Cells(5, 2) = 0
  Dim i As Long
  For i = 0 To 2
    Cells(5, 2) = Cells(5, 2) + Cells(2 + i, 2)
  Next
End Sub
プログラムを見やすくするためにkeisanという変数をつかってみましょう。
Sub keisan1_2()
  Dim keisan As Long
  keisan = Cells(2, 2) + Cells(3, 2) + Cells(4, 2)
  Cells(5, 2) = keisan
End Sub
変数の定義と変数keisanの値をCells(5, 2)に代入している所を理解してください。
変数を定義した時点では0になっていますので
あえてkeisan=0をつけていません。
あった方がわかりやすいかもしれません。
次は縦に並べてみましょう。
Sub keisan1_3()
  Dim keisan As Long
  keisan = keisan + Cells(2, 2)
  keisan = keisan + Cells(3, 2)
  keisan = keisan + Cells(4, 2)
  Cells(5, 2) = keisan
End Sub
Cells(5, 2)を変数にしていたよりプログラムがわかりやすくなってきましたね。
変数が意味を持っているからです。
できるだけ意味をもった変数を使いましょう。
Sub keisan1_4()
  Dim i As Long
  Dim keisan As Long
  For i = 0 To 2
    keisan = keisan + Cells(2 + i, 2)
  Next
  Cells(5, 2) = keisan
End Sub
やっと完成しました。

(2)列の繰り返しの使い方

繰り返しと条件文

(a)各月の計算

合計計算(6行目)・消費税計算(7行目)・税込計算(8行目)を1月から3月までiを使って繰り返す。
繰り返し前
'1月の計算
  Cells(6, 2) = Cells(3, 2) + Cells(4, 2) + Cells(5, 2)
  Cells(7, 2) = Cells(6, 2) * 消費税
  Cells(8, 2) = Cells(6, 2) + Cells(7, 2)
  i = 1
'2月の計算
  Cells(6, 2 + i) = Cells(3, 2 + i) + Cells(4, 2 + i) + Cells(5, 2 + i)
  Cells(7, 2 + i) = Cells(6, 2 + i) * 消費税
  Cells(8, 2 + i) = Cells(6, 2 + i) + Cells(7, 2 + i)
  i = i + 1
'3月の計算
  Cells(6, 2 + i) = Cells(3, 2 + i) + Cells(4, 2 + i) + Cells(5, 2 + i)
  Cells(7, 2 + i) = Cells(6, 2 + i) * 消費税
  Cells(8, 2 + i) = Cells(6, 2 + i) + Cells(7, 2 + i)
  i = i + 1
繰り返し後
'各月の計算
  For i = 0 To 2
    Cells(6, 2 + i) = Cells(3, 2 + i) + Cells(4, 2 + i) + Cells(5, 2 + i)
    Cells(7, 2 + i) = Cells(6, 2 + i) * 消費税
    Cells(8, 2 + i) = Cells(6, 2 + i) + Cells(7, 2 + i)
  Next

(b)大阪・名古屋・東京の計算

合計計算(5列目)・消費税計算(6列目)・税込計算(7列目)を大阪・名古屋・東京までiを使って繰り返す。
繰り返し前
'合計の計算(i=3)
  Cells(3, 2 + i) = Cells(3, 2 + i - 3) + Cells(3, 2 + i - 2) + Cells(3, 2 + i - 1)
  Cells(4, 2 + i) = Cells(4, 2 + i - 3) + Cells(4, 2 + i - 2) + Cells(4, 2 + i - 1)
  Cells(5, 2 + i) = Cells(5, 2 + i - 3) + Cells(5, 2 + i - 2) + Cells(5, 2 + i - 1)
  Cells(6, 2 + i) = Cells(6, 2 + i - 3) + Cells(6, 2 + i - 2) + Cells(6, 2 + i - 1)
  Cells(7, 2 + i) = Cells(7, 2 + i - 3) + Cells(7, 2 + i - 2) + Cells(7, 2 + i - 1)
  Cells(8, 2 + i) = Cells(8, 2 + i - 3) + Cells(8, 2 + i - 2) + Cells(8, 2 + i - 1)
繰り返し後
  For i = 3 To 8
    Cells(i, 5) = Cells(i, 2) + Cells(i, 3) + Cells(i, 4)
  Next

(c)地区の消費税総合計の計算

繰り返し前
'消費税の計算
  Cells(3, 2 + i) = Cells(3, 2 + i - 1) * 消費税
  Cells(4, 2 + i) = Cells(4, 2 + i - 1) * 消費税
  Cells(5, 2 + i) = Cells(5, 2 + i - 1) * 消費税
  Cells(6, 2 + i) = Cells(6, 2 + i - 1) * 消費税
  i = i + 1
'総合計の計算
  Cells(3, 2 + i) = Cells(3, 2 + i - 2) + Cells(3, 2 + i - 1)
  Cells(4, 2 + i) = Cells(4, 2 + i - 2) + Cells(4, 2 + i - 1)
  Cells(5, 2 + i) = Cells(5, 2 + i - 2) + Cells(5, 2 + i - 1)
  Cells(6, 2 + i) = Cells(6, 2 + i - 2) + Cells(6, 2 + i - 1)
繰り返し後
  For i = 3 To 6
    Cells(i, 6) = Cells(i, 5) * 消費税
    Cells(i, 7) = Cells(i, 5) + Cells(i, 6)
  Next

  

(3)2重ループ繰り返しの使い方

繰り返しと条件文

列の合計
各行を計算する
keisan=keisan+各行のセル1月から4月
各行のセル1月から4月を繰り返しその外側に大阪から神戸までを繰り返す。
行と列を分けて計算しています。
Sub keisan3()
  Dim i As Long
  Dim j As Long
  Dim keisan As Long
  For i = 2 To 15 '行
    For j = 2 To 5 '列
      keisan = keisan + Cells(i, j)
    Next
    Cells(i, j) = keisan
    keisan = 0
  Next
  For i = 2 To 6 '列
    For j = 2 To 15 '行
      keisan = keisan + Cells(j, i)
    Next
    Cells(j, i) = keisan
    keisan = 0
  Next
End Sub

(4)条件文の付いた繰り返しの使い方

繰り返しと条件文

InputBoxで入力した地区を条件にして繰り返しの中で使う。
Sub keisan4()
  Dim i As Long
  Dim tiku As String
  tiku = InputBox("地区名")
  For i = 2 To 15
    If Cells(i, 1) = tiku Then
      MsgBox tiku & "売上金額" & Cells(i, 2)
      Exit Sub
    End If
  Next
End Sub

(付録)デバッグの使い方

繰り返しと条件文

  プログラムの動きがおかしいときプログラムを1step(1行)づつ動かしていき変数の値を
  見ながらおかしい個所を見つけていきます。
  イミディエイトウインドウとかウオッチウインドウを使う方法がありますがVBA実践塾は
  ブレイクポイントを使って画面の中でマウスを変数の上に移動して変数の内容を確かめながら
  エラーを見つけていく方法をとっています。
  ブレイクポイントの付け方はプログラムソースの左の欄をクリックするとその欄が茶色になり
  茶色の丸い印が出てきます。
     実行は三角ボタンを押すか実行プルダウンのSubユーザーフォームの実行をクリックします。
  一度実行すれば次は継続に変わりますので注意してください。
  その時ブレイクポイントの欄で止まりますので変数の場所にマウスを置くと変数の内容が表示されます。
  ここから1stepづつ実行していきます。
  F7で1stepづつ実行していきますその時の変数の値を見ながらエラーを見つけていきます。

先頭へ

塾長あいさつ
基本方針(考え方)
通信教育内容
課題解決セミナー内容
初心者基礎コース内容
カリキュラム・料金
案内地図・各種リンク
問合せ・申込み
アベノ塾
システムの内製化
アサイコンピュータACS
応用部品集(有料)
販売管理(事例)
財務管理(事例)
顧客管理(事例)
見積もり(事例)
給与(事例)
介護(事例)
ゴースト暗算(事例)
部品集(部品の基礎)
部品集(シート関連)
部品集(データベース)
部品集(セル関連)
部品集(関数)
部品集(フォーム関連)
部品集(ブック関連)
部品集(その他)
変数の勉強
繰り返しと条件文
マスター登録.訂正.削除
フォルダー内のファイル
項目をシート名で作成
ブックの操作
CSVファイルの取り込み
呼び出し元・先
商品マスター検索
エクセル関数をVBAで
エクセル関数を使う
よくつかうプログラム
販売管理(ソース)
財務管理(ソース)
給与管理(概要・画面)
見積もり(概要・画面)
工程管理(概要・画面)
原価管理(概要・画面)