VBA練習問題解答
練習問題5(ElseIfとSelect Caseの練習)解答

Excelマクロ練習問題集、エクセルVBAの学習教材
公開日:2013年5月以前 最終更新日:2019-11-03

練習問題5(ElseIfとSelect Caseの練習)解答

マクロVBA練習問題5の解答ページです、


マクロVBA練習問題

・昨年比を計算して、それぞれの列に入れて下さい。
・昨年比の数値により、記号を入れて下さい。
S : 105%以上
A : 100%以上、105%未満
B : 95%以上、100%未満
C : 90%以上、95%未満
D : 90%未満
※昨年比 = 今年売上 ÷ 昨年売上
※D列は事前に%編集してあることとして下さい。

練習問題用のExcelファイル
  A     B     C     D    E
日付 昨年売上 今年売上 昨年比 記号
1月1日 304 323    
1月2日 305 279    
1月3日 972 970    
1月4日 684 631    
1月5日 703 689    
1月6日 628 653    
1月7日 619 648    
1月8日 366 324    
1月9日 949 917    
1月10日 229 245    
1月11日 507 525    
1月12日 666 673    
1月13日 728 793    
1月14日 272 288    
1月15日 236 217    
1月16日 334 367    
1月17日 490 458    
1月18日 655 589    
1月19日 348 359    
1月20日 744 687    

※上記表の全体を選択し、コピー(Ctrl+C)の後、エクセルのシートのA1セルに貼り付け(Ctrl+V)してください。

では、お考えください。
すぐに解答を見ずに、必ず自力で書けるとこまででも良いので書きましょう。

シンキングタイム

シンキングタイム開始


シンキングタイム終了

当サイトのコンテンツ
ExcelマクロVBA入門
この「VBA入門」シリーズは、マクロVBAを習得し、日々のExcel作業を効率化・自動化できるようになることを目指します。VBAが初めての方でも無理なくステップアップできるよう、基礎から丁寧に、そして段階的に解説を進めます。そのため、シリーズ後半では入門レベルに留まらず、実務レベルで通用する高度なテクニックや幅広い知…

書くべきマクロVBAが分からない時は、
ここでじっくり勉強してから再チャレンジしてください。

マクロVBA練習問題解答

では解答のマクロVBAコードです。
※.Valueは省略しています。

Sub 練習問題5_1()
  Dim i As Long
  For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 4) = Cells(i, 3) / Cells(i, 2)
    If Cells(i, 4) >= 1.05 Then
      Cells(i, 5) = "S"
    ElseIf Cells(i, 4) >= 1 Then
      Cells(i, 5) = "A"
    ElseIf Cells(i, 4) >= 0.95 Then
      Cells(i, 5) = "B"
    ElseIf Cells(i, 4) >= 0.9 Then
      Cells(i, 5) = "C"
    Else
      Cells(i, 5) = "D"
    End If
  Next
End Sub

Sub 練習問題5_2()
  Dim i As Long
  For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    Cells(i, 4) = Cells(i, 3) / Cells(i, 2)
    Select Case Cells(i, 4)
      Case Is >= 1.05
        Cells(i, 5) = "S"
      Case Is >= 1
        Cells(i, 5) = "A"
      Case Is >= 0.95
        Cells(i, 5) = "B"
      Case Is >= 0.9
        Cells(i, 5) = "C"
      Case Else
        Cells(i, 5) = "D"
    End Select
  Next
End Sub

ElseIf

Select Case
の2通りで回答しました。
しかし、多肢選択においては、Select Caseの方が可読性が良く
また、その後の変更にも柔軟に対応しやすくなります。
なるべく、Select Caseを使用するようにしましょう。
ただし、どちらでも書けるように練習しておきましょう。

以下も参考にして下さい。

ExcelマクロVBA入門.第21回.条件分岐(ElseIf)
前回のIFステートメントでは、真か偽の二択でした。今回は、もっと多くの分岐が必要な、Ifステートメントで多肢条件分岐の場合の書き方です。ステートメントとしては、Ifステートメントです。IfステートメントのElseIfの構文 If条件式1Then 条件式1が真の処理 [ElseIf条件式2Then 条件式2が真の処理…
ExcelマクロVBA入門.第22回.条件分岐(Select Case)
前回のElseIf以外に、多肢条件分岐の別の書き方があります。それがSelectCaseになります。むしろElseIfより、このSelectCaseの方が、より多肢条件分岐に適していると言えます。SelectCaseは、多肢条件分岐に特化したステートメントになります。



同じテーマ「マクロVBA練習問題解答」の記事

練習問題2(最終行の取得の練習)解答
練習問題3(二重ループの練習)解答
練習問題4(Ifの練習)解答
練習問題5(ElseIfとSelect Caseの練習)解答
練習問題6(変数を使っての合計の練習)解答
練習問題7(メッセージボックスの練習)解答
練習問題8(表示形式の練習)解答
練習問題9(文字色・背景色の練習)解答
練習問題10(罫線の練習)解答
練習問題11(色々なコピーの練習)解答
練習問題12(日付関数の練習)解答


新着記事NEW ・・・新着記事一覧を見る

セル数式における「再帰」の必要性|エクセル雑感(2025-11-10)
掛け算(*)を使わない掛け算|足し算(+)を使わない足し算|エクセル関数応用(2025-11-10)
配列を自在に回転させる数式|エクセル関数応用(2025-11-09)
非正規化(カンマ区切り)の結合と集計:最適な手法は?|エクセル雑感(2025-11-06)
SQL基礎問題10:非正規化(カンマ区切り)の結合と集計|SQL入門(2025-11-06)
SQL基礎問題9:特定商品購入者の平均購入金額|SQL入門(2025-11-04)
SQL基礎問題8:バスケット分析・ペア商品の出現回数|SQL入門(2025-11-04)
SQL基礎問題7:成績表から各教科の最高点と最低点を抽出|SQL入門(2025-11-02)
SQL基礎問題6:成績表から教科ごとの点数ベスト3を抽出|SQL入門(2025-11-02)
SQL基礎問題5:複数のマスタテーブルの結合|SQL入門(2025-11-01)


アクセスランキング ・・・ ランキング一覧を見る

1.生成AIパスポート試験 練習問題(四肢択一式)|生成AI活用研究
2.最終行の取得(End,Rows.Count)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.繰り返し処理(For Next)|VBA入門
6.RangeとCellsの使い方|VBA入門
7.FILTER関数(範囲をフィルター処理)|エクセル入門
8.日本の祝日一覧|Excelリファレンス
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.セルのクリア(Clear,ClearContents)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ