先日、とある企業様で『Excel VBAマクロ入門教室』の講師をしてきました。
そのときに授業復習用に問題を、いくつか作りましてのでここに載せておきます。
対象としましては、
- Sub ... End Sub
- MsgBox関数
- if..Else文
- Do..While文
解答はとくに載せていませんので、どのような方法でもご自身なりの答えを出していただければ、と思います。
問1
MsgBoxで"マクロを実行しました"と表示してください。
問2
変数 msg を定義し、
MsgBoxで"変数の中身は [ ? ]です"を表示してください。
※[ ? ]はmsgの中身(中身の値は任意)
問3
変数 hensu1 と hensu2 を使用して、
hensu1 + hensu2
hensu1 - hensu2
hensu1 × hensu2
hensu1 ÷ hensu2
の結果を、MsgBoxで以下のように1度で表示する
"和は[ ? ]です、差は[ ? ]です、積は[ ? ]です、商は[ ? ]です"
問4
変数 hensu1 を活用して、
セル A1 と B1 の値を入れ替えてください。
問5
セル A1の値 と B1の値 を比較して、
大きい方の値をセルA2に設定してください。
問6
セル A1の値 と B1の値 と C1の値 を比較して、 一番大きい値をセルA2に設定する
問7
セル A1の値 が セル B1の値 より大きい場合のみ、
変数 hensu1 を使用して、
セル A1 と B1 の値を入れ替えてください。
※ セルA1 < セルB1 となるようにする
問8
A列に値が入力されている最下行を取得して、
MsgBoxで "最下行は[ ? ]です"と表示する。
問9
(1) A列に値が入力されている最下行を取得する
(2) 最下行まで、Whileループを使ってB列に"〇"を設定する
問10
(1) A列に値が入力されている最下行を取得する
(2) 最下行まで、B列に、A列の値の累積を表示する
※
B1 = A1の値
B2 = A1の値 + A2の値
B3 = A1の値 + A2の値 + A3の値
問11
(1)[前準備]
A1に"受注商品数"
B1に"箱数"
C1に"単品数"
と手動で入力する
(2) A列に値が入力されている最下行を取得する
(3) 1箱につき20商品が入るものとし、最下行まで、
B列に A列の値を 20で割った箱数
C列に A列の値を 20で割った余り数
を設定する
問12
(1)[前準備]
A1に"受注商品数"
B1に"箱数"
C1に"単品数"
と入力する
(2) A列に値が入力されている最下行を取得する
(3) 1箱につき20商品が入るものとし、最下行まで、
B列に A列の値を 20で割った箱数
C列に A列の値を 20で割った余り数
を設定する
(4) 箱数が10以上の場合、B列の背景色を青色とする