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を実務で自在に使いこなし業務を効率化・自動化できるようになることを目的としています。始めはより詳しく丁寧に解説しつつ少しずつ難易度を上げることで無理なく学習を進められるようにしています。「マクロ」と「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 ・・・新着記事一覧を見る

ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




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


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



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