【学習課題】セル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













