VBA 使えるソースコード

つたないソースコードを載せます。これは、他人の書いたソースコードを読む練習に最適です。初心者の方は、どうしたらきれいになるかなど考えながら活用してください。

VBA 後退代入 Ax=b→Ux=yのxを求める(関数)

Function xxx(U() As Double, y() As Double) As Double()
Dim i As Integer
Dim j As Integer
Dim k As Integer

Dim n As Integer
Dim m As Integer
Dim x As Double

Dim arrc() As Double 'xxxになる解そのもの

n = UBound(U, 1)
m = UBound(y)

ReDim arrc(n)

 

arrc(n) = y(n) / U(n, n) '一番下の行の変数の解

For k = 1 To n - 1 '1~n-1 までの解を出すための行数の数

i = n - k 'i = n - 1 to 1

x = 0
For j = i + 1 To n 'arrc(i) より先に出た解の数
x = x + U(i, j) * arrc(j) 'xは,U(i,i) * arrc(i) = y(i) -( U(i,i+1)*arr(i+1) + U(i,i+2)*arr(i+2) + …) ←ここ
Next j

arrc(i) = 1 / U(i, i) * (y(i) - x) '上の式処理しただけ
Next k

xxx = arrc

End Function