【学習課題】セルC2とセルC3に入力された数1と数2について、数1+数2の値をセルD4に、数1-数2の値をセルD5に、数1×数2の値をセルD6に、数1÷数2の値をセルD7に表すマクロを作成しましょう。
-
基本技術と解決手順(日本語)
マクロ「四則計算」を開始する。
数1, 数2の2つの変数を用意する。
和 , 差 , 積 ,商の4つの変数を用意する。
セルC1を変数(数1)に代入する。
セルC2を変数(数2)に代入する。
数1と数2の和を変数(和)に代入する。
数1と数2の差を変数(差)に代入する。
数1と数2の積を変数(積)に代入する。
数1と数2の商を変数(商)に代入する。
変数(和)をセルC3に代入する。
変数(差)をセルC4に代入する。
変数(積)をセルC5に代入する。
変数(商)をセルC6に代入する。
マクロ「四則計算」を終了する。 -
コード化(マクロ)
Sub 四則計算()
Dim 数1, 数2 As Integer
Dim 和, 差, 積, 商 As Integer
数1 = Range("C1").Value
数2= Range("C2").Value
和 = 数1 + 数2
差 = 数1 - 数2
積 = 数1 * 数2
商 = 数1 / 数2
Range("C3").Value = 和
Range("C4").Value = 差
Range("C5").Value = 積
Range("C6").Value = 商
End Sub
【学習課題】セルB2に時間を、セルB3に分を、セルB4に秒を入力して、〇時間△分□秒をすべて秒に変換してセルB5に表すマクロを作成しましょう。
-
基本技術と解決手順(日本語)
マクロ「何秒」を開始する。
時間,分,秒の3つの変数を用意する。
何秒の変数を用意する。
セルC2の数を変数(時間)に入力する。
セルC3の数を変数(分)に入力する。
セルC4の数を変数(秒)に入力する。
時間を3600倍 , 分を60倍して , 時間*
3600+分* 60+秒 を何秒に代入する。
セルC5に何秒を代入する。
マクロ「何秒」を終了する。 -
コード化(マクロ)
Sub 秒に変換()
Dim 時間, 分, 秒 As Long
Dim 何秒 As Long
時間 = Range("C2")
分 = Range("C3")
秒 = Range("C4")
何秒 = 時間 * 3600 + 分 * 60 + 秒
Range("C5") = 何秒
End Sub
3 速さの問題
【学習課題】速さ(セルB3)・時間(セルC3)・距離(セル)の3つの数量のうちの2つの数量が入力されたとき、残りの数量を計算するマクロを作成しましょう。
-
基本技術と解決手順(日本語)
マクロ「速さの学習」を開始する。
速さ,時間,距離の3つの変数を用意する。
セルB3の数を変数(速さ)に代入する。
セルC3の数を変数(時間)に代入する。
セルD3の数を変数(距離)に代入する。
セルB3の数が入力されていないならば、
距離÷時間を速さに代入する。
セルC3の数が入力されていないならば、
距離÷速さを時間に代入する。
セルD3の数が入力されていないならば、
速さ×時間を距離に代入する。
セルB3に速さを代入する。
セルC3に速さを代入する。
セルD3に速さを代入する。
マクロ「速さの学習」を終了する。 -
コード化(マクロ)
Sub 速さの学習()
Dim 速さ, 時間, 距離 As Variant
速さ = Range("B3").Value
時間 = Range("C3").Value
距離 = Range("D3").Value
If Range("B3").Value = "" Then
速さ = 距離 / 時間
If Range("C3").Value = "" Then
時間 = 距離 / 速さ
If Range("D3").Value = "" Then
距離 = 速さ * 時間
Range("B3").Value = 速さ
Range("C3").Value = 時間
Range("D3").Value = 距離
End Sub
【学習課題】セルB3に任意の整数を入力して、絶対値を求めるマクロを作成しましょう。
-
基本技術と解決手順(日本語)
マクロ「絶対値」を開始する。
数という変数を準備する。
絶対値という変数を準備する。
セルB3の値を数に代入する。
もし、数が0より小さいならば
数を負にしたものを絶対値に代入する。
それ以外の値の場合は
数を絶対値に代入する。
条件処理を終了する。
絶対値をセルC3に代入する。
マクロ「絶対値」を終了する。 -
コード化(マクロ)
Sub 絶対値()
Dim 数 As Integer
Dim 絶対値 As Integer
数 = Range("B3").Value
If 数 < 0 Then
絶対値 = -数
Else
絶対値 = 数
End If
Range("C3").Value = 絶対値
End Sub
5 九九表
【学習課題】セルC2~セルK2に1~9の数を、セルB3~セルB11に1~9の数を表す九九表(問題)のマクロを作成しましょう。
-
基本技術と解決手順(日本語)
マクロ「九九表問題」を開始する。
変数(縦)を準備する。
変数(横)を準備する。
次の式を縦の値1から9まで繰り返す。
縦の値をセル(2, 縦 + 2)に代入する。
縦の値を1増やして繰り返しの始めに戻る。
次の式を横の値1から9まで繰り返する。
縦の値をセル(横+2, 2)に代入する。
横の値を1増やして繰り返しの始めに戻る。
マクロ「九九表問題」を終了する。 -
コード化(マクロ)
Sub 九九表問題()
Dim 縦 As Integer
Dim 横 As Integer
For 縦 = 1 To 9
Cells(2, 縦 + 2) = 縦
Next 縦
For 横 = 1 To 9
Cells(横 + 2, 2) = 横
Next 横
End Sub
6 九九計算表
【学習課題】九九一覧表を表すマクロを作成しましょう。
-
基本技術と解決手順(日本語)
マクロ「九九表解答」を開始する。
変数(縦 , 横)を準備する。
変数 表(1 TO 9, 1 TO 9)の81を準備する。
次の式を縦の値1から9まで繰り返す。
縦の値をセル(2, 縦 + 2)に代入する。
縦の値を1増やして繰り返しの始めに戻る。
次の式を横の値1から9まで繰り返す。
縦の値をセル(横+2, 2)に代入する。
横の値を1増やして繰り返しの始めに戻る。
まず、縦の値1から9まで繰り返す。
その中で次の式を横の値1から9まで繰り返す。
表(縦, 横)に縦+横を代入する。
横の値を1増やして戻る。
縦の値を1増やして繰り返しの始めに戻る。
まず、縦の値1から9まで繰り返す。
その中で次の式を横の値1から9まで繰り返す。
表(縦, 横)の値をセル(縦+3, 横+3)に代入する。
横の値を1増やして戻る。
縦の値を1増やして繰り返しの始めに戻る。
マクロ「九九表解答」を終了する。 -
コード化(マクロ)
Sub 九九表解答()
Dim 縦, 横 As Integer
Dim 表(1 To 9, 1 To 9) As Integer
For 縦 = 1 To 9
Cells(2, 縦 + 2) = 縦
Next 縦
For 横 = 1 To 9
Cells(横 + 2, 2) = 横
Next 横
For 縦 = 1 To 9
For 横 = 1 To 9
表(縦, 横) = 縦 * 横
Next 横
Next 縦
For 縦 = 1 To 9
For 横 = 1 To 9
Cells(縦 + 3, 横 + 3) = 表(縦, 横)
Next 横
Next 縦
End Sub
7 最大値
【学習課題】8名のボール投げの結果について、一番遠くに投げた児童の出席番号と距離を求めるセルE4に出席番号を、セルF4に距離を表すマクロを作成しましょう。
-
基本技術と解決手順(日本語)
マクロ「最大値」を開始する。
変数「位置」を準備する。
変数「最大値」を準備する。
変数「行」を準備する。
セルE4の値を最大値に代入する。
位置に1を代入する。
行に2を代入する。
セル(行, 3)の値が空でないまで繰り返す。
もし、最大値がセル(行, 3)より小さいときは
最大値にセル(行, 3)を代入する。
位置に行の値を代入する。
条件処理を終了する。
行に行たす1を代入する。
繰り返しを続けます。
セルE4に位置引く1を代入する。
セルF4に最大値を代入する。
マクロ「最大値」を終了する。 -
コード化(マクロ)
Sub 最大値()
Dim 位置 As Integer
Dim 最大値 As Variant
Dim 行 As Integer
最大値 = Range("E4")
位置 = 1
行 = 2
Do While Cells(行, 3) <> ""
If 最大値 < Cells(行, 3) Then
最大値 = Cells(行, 3)
位置 = 行
End If
行 = 行 + 1
Loop
Range("E4") = 位置 - 1
Range("F4") = 最大値
End Sub