1 年平均気温
【学習課題】セルC3~N3ni入力された毎月の平均気温から年平均気温を求め、セルO3に表示するプログラムを作成しましょう。
-
解決手順(日本語)
マクロ「年平均気温」を開始します。
月平均気温(1~12)の変数を準備します。
月数, 月平均気温合計の変数を準備します。
月数を1から12まで繰り返します。
Cells(3, 月数 + 2)を月平均気温(月数)に代入
します。
平均気温合計に月平均気温(月数)を加えた値
を平均気温合計に代入します。
月数に1を加えて戻ります。
平均気温合計を12で割った値をセル(3,15)に
代入します。
マクロ「年平均気温」を終了します。 -
コード化(マクロ)
Sub 年平均気温()
Dim 月平均気温(12) As Integer
Dim 月数,月平均気温合計As Integer
For 月数 = 1 To 12
月平均気温(月数) = Cells(3, 月数 + 2).Value
平均気温合計 = 平均気温合計 +
月平均気温(月数)
Next 月数
Cells(3, 15).Value = 平均気温合計 / 12
End Sub
【学習課題】セルC2に体重を、セルC3に身長を入力して、BMI指数と評価を求めるプログラムを作成しましょう。
-
解決手順(日本語)
マクロ「BMI評価」を開始します。
指数,体重,身長の3つの変数を用意します。
セルC2の値を体重に代入します。
セルC3の値を身長に代入します。
体重を身長の2乗で割った値を指数に代入します
指数をセルC4に代入します。
もし、指数が17.6以下ならば
セルC5に“やせすぎ”という文字を代入します。
上記以外で、もし、指数が19.8より小さいなら
ばセルC5に“やせぎみ”という文字を代入します。
上記以外で、もし、指数が24.2より小さいなら
ば セルC5に“平均”という文字を代入します。
上記以外で、もし、指数が26.4より小さいなら
ばセルC5に“太りぎみ”という文字を代入します。
上記以外は
セルC5に“太りすぎ”という文字を代入します。
条件処理を終了します。
マクロ「BMI評価」を終了します。 -
コード化(マクロ)
Sub BMI評価 ()
Dim 指数, 体重, 身長 As Double
体重 = Range("C2")
身長 = Range("C3")
指数 = 体重 / 身長 ^ 2
Range("C4") = 指数
If 指数 <= 17.6 Then
Range("C5") = "やせすぎ"
ElseIf 指数 < 19.8 Then
Range("C5") = "やせぎみ"
ElseIf 指数 < 24.2 Then
Range("C5") = "平均"
ElseIf 指数 < 26.4 Then
Range("C5") = "太りぎみ"
Else
Range("C5") = "太りすぎ"
End If
End Sub
3 ローレル指数評価
【学習課題】セルC2に体重を、セルC3に身長を入力して、ローレル指数と評価を求めるプログラムを作成しましょう。
-
解決手順(日本語)
マクロ「ローレル指数」を開始します。
指数,体重,身長の3つの変数を用意します。
セルC2の値を体重に代入します。
セルC3の値を身長に代入します。
体重を身長の3乗で割って10倍した値を指数に
代入します。
指数をセルC4に代入します。
もし、指数が100より小さいならば
セルC5に“やせすぎ”という文字を代入します。
上記以外で、もし、指数が115より小さいならば
セルC5に“やせぎみ”という文字を代入します。
上記以外で、もし、指数が145より小さいならば
セルC5に“平均”という文字を代入します。
上記以外で、もし、指数が160より小さいならば
セルC5に“太りぎみ”という文字を代入します。
上記以外は
セルC5に“太りすぎ”という文字を代入します。
条件処理を終了します。
マクロ「ローレル指数」を終了します。 -
コード化(マクロ)
Sub ローレル指数()
Dim 指数, 体重, 身長 As Double
体重 = Range("C2")
身長 = Range("C3")
指数 = 体重 / 身長 ^ 3 * 10
Range("C4") = 指数
If 指数 < 100 Then
Range("C5") = "やせすぎ"
ElseIf 指数 < 115 Then
Range("C5") = "やせぎみ"
ElseIf 指数 < 145 Then
Range("C5") = "平均"
ElseIf 指数 < 160 Then
Range("C5") = "太りぎみ"
Else
Range("C5") = "太りすぎ"
End If
End Sub
4 成績判定1
【学習課題】セルB3に英語、セルC3に数学の点数を入力して、いずれも60点以上であれば合格、どちらかが60点未満であれば不合格と判定し、その結果をD3にひょうじする成績判定プログラムを作成しましょう。
-
解決手順(日本語)
マクロ「成績判定1」を開始します。
変数(英語、数学)を準備します。
セルB3の値を英語に代入します。
セルC3の値を数学に代入します。
英語が60以上で、数学が60以上ならば
セルD3に“合格”という文字を代入します
上記以外の特は。
セルD3に“不合格”という文字を代入します
条件処理を終了します。
マクロを終了します。 -
コード化(マクロ)
Sub 成績判定1()
Dim 英語, 数学 As Integer
英語 = Range("B3").Value
数学 = Range("C3").Value
If 英語 >= 60 And 数学 >= 60 Then
Range("D3").Value = "合格"
Else
Range("D3").Value = "不合格"
End If
End Sub
5 成績判定2
【学習課題】英語と数学の合計点が160点以上であればA、120点以上160点未満であればB、120点未満であればCという条件で成績結果を判定するプログラムです。下線を埋めましょう。
-
解決手順(日本語)
マクロ「成績判定2」を開始します。
変数(英語、数学)を準備します。
セルB3の値を英語に代入します。
セルC3の値を数学に代入します。
英語に数学を足した値を合計に代入します。
セルD3に合計の値を代入します。
もし、合計が160以上ならば
セルE3に“A”を代入します。
上記以外で、合計が120以上ならば
セルE3に“B”を代入します。
そして、上記以外ならば
セルE3に“C”を代入します。
条件処理を終了します。
マクロを終了します。 -
コード化(マクロ)
Sub 成績判定2()
Dim 英語, 数学, 合計 As Integer
英語 = Range("B3").Value
数学 = Range("C3").Value
合計 = 英語 + 数学
Range("D3").Value = 合計
If 合計 >= 160 Then
Range("E3").Value = "A"
ElseIf 合計 >= 120 Then
Range("E3").Value = "B"
Else
Range("E3").Value = "C"
End If
End Sub
6 成績判定3
【学習課題】国語、数学、英語の合計点を下記の基準点をもとに5段階評価するプログラムを作成しましょう。
-
解決手順(日本語)
マクロ「成績判定3」を開始します。
変数(国語、数学、英語、合計)を準備します。
B3の値を国語に代入します。
C3の値を数学に代入します。
D3の値を英語に代入します。
国語と数学と英語を足した値を合計に代入します
セルE3に合計を代入します。
合計について
250以上300以下の場合
セルF3に“A”を代入します。
200以上250未満の場合
セルF3に“B”を代入します。
150以上200未満の場合
セルF3に“C”を代入します。
100以上150未満の場合
セルF3に“D”を代入します。
0以上100未満の場合
セルF3に“E”を代入します。
分岐処理を終了します。
マクロ「成績判定3」を終了します。 -
コード化(マクロ)
Sub 成績判定3()
Dim 国語, 数学, 英語, 合計 As Integer
国語 = Range("B3")
数学 = Range("C3")
英語 = Range("D3")
合計 = 国語 + 数学 + 英語
Range("E3").Value = 合計
Select Case 合計
Case 250 To 300
Range("F3").Value = "A"
Case 200 To 249
Range("F3").Value = "B"
Case 150 To 200
Range("F3").Value = "C"
Case 100 To 150
Range("F3").Value = "D"
Case 0 To 100
Range("F3").Value = "E"
End Select
End Sub
7 成績判定4
【学習課題】10人の平均点と平均点以上の人数を示すプログラムを作成しましょう。
-
解決手順
マクロ「成績処理」を開始します。
変数(NO, 点数, 合計, 平均点, 人数)を準備
します。
合計に0を代入します。
NOが1から10まで繰り返します。
セル(NO + 2, 3)に点数を代入します。
合計に点数を足した値を合計に代入します。
NOに1加えて戻ります。
合計を10で割った値を平均点に代入します。
人数に0を代入します。
NOが1から10まで繰り返します。
もし、セル(NO + 2, 3)が平均点以上のとき、
人数に1足した値を人数に代入します。
NOに1加えて戻ります。
セルC13に平均点を代入します。
セルc14に人数を代入します。
マクロを終了します。 -
コード化(マクロ)
Sub 成績処理()
Dim NO, 点数, 合計, 平均点, 人数 As Integer
合計 = 0
For NO = 1 To 10
点数 = Cells(NO + 2, 3).Value
合計 = 合計 + 点数
Next NO
平均点 = 合計 / 10
人数 = 0
For NO = 1 To 10
If Cells(NO + 2, 3).Value
>= 平均点 Then 人数 = 人数 + 1
Next NO
Range("C13").Value = 平均点
Range("C14").Value = 人数
End Sub
8 おみくじ
【学習課題】乱数を使って、大吉・中吉・小吉・吉・大凶・凶のおみくじを表示するプログラムを作成しましょう。
-
解決手順(日本語)
マクロ「おみくじ」を開始します。
変数(おみくじ)を準備します。
変数(結果)を準備します。
乱数
1乱数×6+1の値を結果に代入します。
結果について
1の場合には“大吉”をおみくじに代入します。
2の場合には“中吉”をおみくじに代入します。
3の場合には“小吉”をおみくじに代入します。
4の場合には“吉”をおみくじに代入します。
5の場合には“大凶”をおみくじに代入します。
6の場合には“凶”をおみくじに代入します。
分岐処理を終了します。
今日の運勢は“ ”をボックスに表示します。
マクロを終了します。 -
コード化(マクロ)
Sub おみくじ()
Dim おみくじ As String
Dim 結果 As String
Randomize
結果 = Int((Rnd) * 6 + 1)
Select Case 結果
Case 1: おみくじ = "大吉"
Case 2: おみくじ = "中吉"
Case 3: おみくじ = "小吉"
Case 4: おみくじ = "吉"
Case 5: おみくじ = "大凶"
Case 6: おみくじ = "凶"
End Select
MsgBox "今日の運勢:" & おみくじ & ""
End Sub
9 10年後の預金
【学習課題】F3に元金、F4に金利を入力して、このときの10年間の複利預金の変化の様子をセルC3:C12に表すプログラムを作成しましょう。
-
解決手順
マクロ「預金」を開始します。
変数(預金・金利・年数)を準備します。
セル(3,6)の値を預金に代入します。
セル(4,6)の値を金利に代入します。
年数を1から10まで繰り返します。
預金×(金利+1)の値を預金に代入します。
セル(年数 + 2, 2)に年数を代入します。
セル(年数 + 2,3)に預金を代入します。
年数に1加えて戻ります。
マクロを終了します。 -
コード化(マクロ)
Sub 預金()
Dim 預金・金利・年数As Long
預金 = Cells(3, 6).Value
金利 = Cells(4, 6).Value
For 年数 = 1 To 10
預金 = 預金 * (金利 + 1)
Cells(年数 + 2, 2).Value = 年数
Cells(年数 + 2, 3).Value = 預金
Next 年数
End Sub
10 パスワード
【学習課題】事前にアカウントABC77DEF、パスワード9999をプログラムに書き込み、C2にアカウント、C3にパスワードを入力したときのログイン可能かどうかをB5に表すプログラムを作成しましょう。
-
解決手順(日本語)
マクロ「ログイン」を開始します。
変数(アカウント ,パスワード)を準備します。
Aに1009を代入します。
pに35を代入します。
セル(2,3)の値をアカウントに代入します。
セル(3,3)の値をパスワードに代入します。
もし、アカウント=Aでかつパスワード=pのとき
セル(5,2)に“ようこそ”を代入します。
上記以外のときは
セル(5,2)に“アカウント、パスワードが間違っ
ています。”を代入します。
条件分岐を終了します。
マクロを終了します。 -
コード化(マクロ)
Sub ログイン()
Dim アカウント ,パスワード As Integer
A = 1009
p = 35
アカウント = Cells(2, 3).Value
パスワード = Cells(3, 3).Value
If (アカウント=A) And (パスワード=p) Then
Cells(5, 2).Value = "ようこそ"
Else
Cells(5, 2).Value = "アカウント、パスワードが
間違っています。 "
End If
End Sub