【Excel】Ifで条件付き集計と条件付き転記をする(速読VBA単語Program3-4)
ExcelにはIF関数があり、関数の中では第1のハードルと言われています。VBAにも「If」はあります。
Excelの場合は条件判定をして結果を表示すれば終わりですが、VBAの場合は、For文と変数を使いますので結果を表示するだけでは終わりません。通常のVBAの教科書では、「IF=条件分岐=結果が複数表示される」と説明しますが、それだけであればExcelでIF関数を使えばよいです。VBAを使う意味がないです。
このProgram3-4では、Ifを使ってカウント、集計、条件付きの転記をする練習をして、VBAでしかできないIfの使い方を学びます。For文と変数とIf文が理解できたら第1関門クリアですから、しっかりと練習しましょう。
目次
1.""(ダブルクォーテーション2つ)
2.書き換えがあるのはイコールがあるときだけ
3.If~Then
(1)IF文
(2)上書きを利用する
4.End If
5.Else
6.変化する数を変数にする
7.カウント
(1)For文を使ったカウント
(2)条件付きカウント
8.条件付きの合計と平均
9.カウントを利用して転記する
10.章末テスト(長文読解問題)
Program3-4の最終目標
このプログラムで最初に記述するコードは次のとおりです。たったの5行です。ただのFor文です。(速読VBA単語Program3-2参照)
Sub VBA3_4()
For i=2 To 101
Cells(i, 4)="合格"
Next
End Sub
Ifを使うとコードが長くなります。目次の最後にある長文読解の問題文を次に示します。Program3-4では、上の5行のコードが、下の27行のコードになるまでの過程を説明します。これだけ長い文章が打てるようになれば、VBAに慣れてきた証拠です。最終的にIfを使って条件付きの個数、合計、平均、条件付き転記ができるようになります。
Sub VBA3_4()
Range("D2:H101").ClearContents
kijun = 70
cnt1 = 0
cnt2 = 0
For i = 2 To 101
kamoku1 = Cells(i, 2).Value
kamoku2 = Cells(i, 3).Value
If kamoku1 >= kijun Then
GoukakuNo = Cells(i, 1).Value
kojin_goukei = kamoku1 + kamoku2
Cells(i, 5).Value = kojin_goukei
Cells(cnt1 + 2, 7).Value = GoukakuNo
Cells(cnt1 + 2, 8).Value = kojin_goukei
goukei = goukei + kojin_goukei
cnt1 = cnt1 + 1
Else
Cells(i, 4).Value = "不合格"
cnt2 = cnt2 + 1
End If
Next
If cnt2 = 0 Then MsgBox "全員合格"
Debug.Print "合格者数:" & cnt1
Debug.Print "合格者合計:" & goukei
If cnt1 > 0 Then Debug.Print "合格者平均:" & goukei / cnt1
Debug.Print "不合格者数:" & cnt2
End Sub
練習問題(無料)
速読VBA単語Program3-4までを出題範囲とする練習問題を無料で公開しています。
注意事項
「速読VBA単語」は、文法を完全に無視して、難易度順に単語練習をするだけでExcelVBAを習得しようという「邪道」な企画です。本講座は、極めて強い副作用があり安全上注意が必要です。この説明書は本講座を正しく受講するための説明文書です。受講する前に必ずお読みください。
無料ゾーンご案内
速読VBA単語Program1-1, Program1-2, Program2-1は無料で公開しております。ぜひご覧ください。
また、WordやExcel(マクロ以外)の記事はすべて無料で公開しております。
https://note.mu/waenavi/n/nfc3ff98822cc
0.実験用Excelファイルの準備
まずは、今回のプログラムで使用するExcelファイルを作ります。
・セルA1「JukenNo」
・セルA2:A101「A001~A100」
・セルB1「Kamoku1」
・セルC1「Kamoku2」
・セルB2:C101は、50~100の間の数値でランダムでよいです。
・セルG1「GokakuNo」
・セルH1「GokakuTen」
なお、ランダムの数値は「=Int(Rand()*50)+50」という数式を使えば良いですが、数式を使った場合は値の貼り付けをして数式を消しておいてください。
ここから先は
¥ 500
この記事が気に入ったらサポートをしてみませんか?