見出し画像

【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」という数式を使えば良いですが、数式を使った場合は値の貼り付けをして数式を消しておいてください。


続きをみるには

残り 12,031字 / 12画像

¥ 500

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?