54. セルからの値の取得
? セルから値を取得してみましょう。
Sub 初めてのプログラム()
Dim sum As Integer
Dim avg As Integer
sum = Cells(10, 3).Value + Cells(10, 4).Value + Cells(10, 5).Value
avg = sum / 3
MsgBox (sum)
MsgBox (avg)
End Sub
58. セルへの値のセット
? 計算した値をセルにセットしてみましょう。
Sub 初めてのプログラム()
Dim sum As Integer
Dim avg As Integer
sum = Cells(10, 3).Value + Cells(10, 4).Value + Cells(10, 5).Value
avg = sum / 3
Cells(10, 6).Value = sum
Cells(10, 7).Value = avg
End Sub
62. IF文
? IF文を使用して、条件によって評価を決めてみましょう。
Sub 初めてのプログラム()
Dim sum As Integer
Dim avg As Integer
Dim score As String
sum = Cells(10, 3).Value + Cells(10, 4).Value + Cells(10, 5).Value
avg = sum / 3
Cells(10, 6).Value = sum
Cells(10, 7).Value = avg
If avg >= 80 Then
score = "A"
End If
Cells(10, 8).Value = score
End Sub
67. And と Or
? 条件の部分で複数の条件を指定したい場合もあります。
? その場合、「And」か「Or」を使用します。
? 全ての条件を満たす場合に処理をしたい場合には、
「And」を使用します。
? いずれか一つでも条件を満たしている場合に処理したいと
きは、「Or」を使用します。
'平均が80点以上、または、合計が250点以上の場合
If avg >= 80 Or sum >= 250 Then
score = "A"
End If
69. IF~ELSE文
? IFの条件に合致しない場合の処理も書いておきましょう。
Sub 初めてのプログラム()
Dim sum As Integer
Dim avg As Integer
Dim score As String
sum = Cells(10, 3).Value + Cells(10, 4).Value + Cells(10, 5).Value
avg = sum / 3
Cells(10, 6).Value = sum
Cells(10, 7).Value = avg
If avg >= 80 Then
score = "A"
Else
score = "E"
End If
Cells(10, 8).Value = score
End Sub
72. IF~ELSEIF~ELSE文
? 条件分岐をさらに細かくしていきましょう。
Sub 初めてのプログラム()
' 省略
If avg >= 80 Then
score = "A"
ElseIf avg >= 70 Then
score = "B"
ElseIf avg >= 60 Then
score = "C"
ElseIf avg >= 50 Then
score = "D"
Else
score = "E"
End If
Cells(10, 8).Value = score
End Sub
75. For文
? For文を使用して、5人分の評価をつけてみましょう。
Sub 初めてのプログラム()
Dim sum As Integer
Dim avg As Integer
Dim score As String
Dim i As Integer
For i = 10 To 14
sum = Cells(i, 3).Value + Cells(i, 4).Value + Cells(i, 5).Value
avg = sum / 3
Cells(i, 6).Value = sum
Cells(i, 7).Value = avg
' IF文省略
Cells(i, 8).Value = score
Next
End Sub
79. ファンクション
? ファンクションを使って処理を分けてみましょう。
? Subプロシージャの外に以下の内容を記述しましょう。
Function getScore(ByVal avg As Integer) As String
If avg >= 80 Then
getScore = "A"
ElseIf avg >= 70 Then
getScore = "B"
ElseIf avg >= 60 Then
getScore = "C"
ElseIf avg >= 50 Then
getScore = "D"
Else
getScore = "E"
End If
End Function
80. ファンクション
? ファンクションを使って処理を分けてみましょう。
? Subプロシージャを以下の内容に変更しましょう。
Sub 初めてのプログラム()
Dim sum, avg, i As Integer
Dim score As String
For i = 10 To 14
sum = Cells(i, 3).Value + Cells(i, 4).Value + Cells(i, 5).Value
avg = sum / 3
Cells(i, 6).Value = sum
Cells(i, 7).Value = avg
score = getScore(avg)
Cells(i, 8).Value = score
Next
End Sub
83. ファンクション(解説)
? 後ろの「As String」は、「戻り値の宣言」です。
? ファンクションは、処理を終えた後、結果を返すことがで
きます。
? 結果を返したい場合、その値の型を書きます。
? 返す値のことを「戻り値」と呼びます。
Function getScore(ByVal avg As Integer) As String
'処理
End Function