Excel VBAマクロ 入門問題集

先日、とある企業様で『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列の背景色を青色とする