Sub ex_01()
Dim i As Long
For i = 3 To 5
Cells(i, 5).Value = Cells(i, 3).Value + Cells(i, 4).Value
Cells(i, 5).NumberFormatLocal = "#,##0"
Next i
End Sub
x = Range("C3:D5").Value としていますので、配列xは下図のようになっています。
B
C
D
E
2
3
x(1, 1)
x(1, 2)
4
x(2, 1)
x(2, 2)
5
x(3, 1)
x(3, 2)
Sub ex_01a()
Dim i As Long
Dim x As Variant
Dim ans As Variant
x = Range("C3:D5").Value
ReDim ans(1 To UBound(x), 1 To 1)
For i = LBound(x) To UBound(x)
ans(i, 1) = x(i, 1) + x(i, 2)
Next i
With Range("E3").Resize(UBound(x))
.Value = ans
.NumberFormatLocal = "#,##0"
End With
End Sub
Sub ex_02()
Dim i As Long
For i = 3 To 5
Cells(i, 5).Value = Cells(i, 3).Value - Cells(i, 4).Value
Cells(i, 5).NumberFormatLocal = "#,##0"
Next i
End Sub
コードの例2
計算元のデータを配列xに入れ、計算結果を配列ansに入れています。
Sub ex_02a()
Dim i As Long
Dim x As Variant
Dim ans As Variant
x = Range("C3:D5").Value
ReDim ans(1 To UBound(x), 1 To 1)
For i = LBound(x) To UBound(x)
ans(i, 1) = x(i, 1) - x(i, 2)
Next i
With Range("E3").Resize(UBound(x))
.Value = ans
.NumberFormatLocal = "#,##0"
End With
End Sub
Sub ex_03()
Dim i As Long
For i = 3 To 5
Cells(i, 5).Value = Cells(i, 3).Value * Cells(i, 4).Value
Cells(i, 5).NumberFormatLocal = "#,##0"
Next i
End Sub
Sub ex_03a()
Dim i As Long
Dim x As Variant
Dim ans As Variant
x = Range("C3:D5").Value
ReDim ans(1 To UBound(x), 1 To 1)
For i = LBound(x) To UBound(x)
ans(i, 1) = x(i, 1) * x(i, 2)
Next i
With Range("E3").Resize(UBound(x))
.Value = ans
.NumberFormatLocal = "#,##0"
End With
End Sub
Sub ex_04a()
Dim i As Long
Dim x As Variant
Dim ans As Variant
x = Range("C3:D5").Value
ReDim ans(1 To UBound(x), 1 To 1)
For i = LBound(x) To UBound(x)
ans(i, 1) = x(i, 2) / x(i, 1)
Next i
With Range("E3").Resize(UBound(x))
.Value = ans
.NumberFormatLocal = "0%"
End With
End Sub
Sub ex_05a()
Dim i As Long
Dim x As Variant
Dim ans As Variant
x = Range("E3:E6").Value
ReDim ans(1 To UBound(x), 1 To 1)
For i = LBound(x) To UBound(x) - 1
ans(i, 1) = x(i, 1) / x(UBound(x), 1)
Next i
With Range("F3").Resize(UBound(x))
.Value = ans
.NumberFormatLocal = "0%"
End With
End Sub