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コードです。
※.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(最終行の取得の練習)解答

マクロVBA練習問21の解答ページです。マクロVBA練習問題 ・金額を計算して、D列に入れて下さい、ただし、行数は随時変わるので、行数の変化に自動対応して下さい。※金額=数量×単価 練習問題用のExcelファイル こちらからダウンロードできます。
練習問題3(二重ループの練習)解答
マクロVBA練習問題3の解答ページです。マクロVBA練習問題 100マス計算です。1行目の数値と、A列の数値の掛け算を、各交点のセルに入れて下さい。練習問題用のExcelファイル こちらからダウンロードできます。
練習問題4(Ifの練習)解答
マクロVBA練習問題4の解答ページです。マクロVBA練習問題 ・箱数とバラ数を計算して、それぞれの列に入れて下さい。・1箱に満たない場合は、D列の箱数に"×"を入れて下さい。※入数とは、1箱に入る数量です。
練習問題5(ElseIfとSelect Caseの練習)解答
練習問題6(変数を使っての合計の練習)解答
マクロVBA練習問題6の解答ページです。マクロVBA練習問題 ・金額を計算して、D列に入れて下さい、・金額の合計を計算し、最終行の1行下のD列に入れて下さい。(下の票では、D22セルになります。) 練習問題用のExcelファイル こちらからダウンロードできます。
練習問題7(メッセージボックスの練習)解答
マクロVBA練習問題7の解答ページです、マクロVBA練習問題 ・金額を計算して、D列に入れて下さい、・金額の合計と平均を計算し、MsgBoxで画面に表示して下さい。練習問題用のExcelファイル こちらからダウンロードできます。zipはこちらです。
練習問題8(表示形式の練習)解答
マクロVBA練習問題8の解答ページです。マクロVBA練習問題 ・金額を計算して、D列に入れて下さい。・A列の日付を、yyyy/mm/dd形式にしてください。・D列の金額を、カンマ編集にして下さい。練習問題用のExcelファイル こちらからダウンロードできます。
練習問題9(文字色・背景色の練習)解答
マクロVBA練習問題9の解答ページです。マクロVBA練習問題 ・昨年比を計算して、D列に入れて下さい。・昨年比により、D列に以下の書式を設定して下さい。背景青、白文字:105%以上 青文字:100%以上、105%未満 黒文字:95%以上、100%未満 赤文字:90%以上、95%未満 背景赤、黒文字:90%未満 ※昨…
練習問題10(罫線の練習)解答
マクロVBA練習問題10の解答ページです。マクロVBA練習問題 ・客単価を計算してD列に入れて下さい。・客単価は小数以下2桁で表示して下さい。・罫線を、参考図のように設定して下さい。※客単価=売上÷客数 練習問題用のExcelファイル こちらからダウンロードできます。
練習問題11(色々なコピーの練習)解答
マクロVBA練習問題11の解答ページです。マクロVBA練習問題 ・A1セル~B6セルを D1セル~E6セルに全てコピーして下さい。・A1セル~B6セルを G1セル~H6セルに値のみコピーして下さい。練習問題用のExcelファイル こちらからダウンロードできます。
練習問題12(日付関数の練習)解答
マクロVBA練習問題12の解答ページです。マクロVBA練習問題 ・曜日別の売上合計・日数・平均売上を計算し、G2~I8に入れて下さい。練習問題用のExcelファイル こちらからダウンロードできます。zipはこちらです。


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

TRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)
正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)
エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)
ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.RangeとCellsの使い方|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.セルのクリア(Clear,ClearContents)|VBA入門
8.メッセージボックス(MsgBox関数)|VBA入門
9.条件分岐(Select Case)|VBA入門
10.ブック・シートの選択(Select,Activate)|VBA入門




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


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


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