VBAのエラーについての質問です。 End sub, End Function またはEnd Property以降にはコメントのみが記載できます。 といったエラーが出ました。 Private Function Newton(dfactor As Double, pnum As Integer) As Double のところに黄色い線が出たのですが、どうすれば解決できるのでしょうか。 Sub InterestRate1() Dim i As Integer, N As Integer, discount_rate As Double Dim a() As Double, x() As Double N = WorksheetFunction.Count(Worksheets("拡大係数行列").Range("B2:B200")) '行数の取得 ReDim a(N - 1, N) As Double ReDim x(N - 1) As Double For i = 0 To N - 1 For j = 0 To N a(i, j) = Worksheets("拡大係数行列").Cells(i + 2, j + 2).Value '拡大係数行列 Next j Next i Call Gauss(a, N) For i = 0 To N - 1 x(i) = a(i, N) discount_rate = Newton(x(i), i) Worksheets("利子率").Calls(i + 2, 2).Value = discount_rate Next i End Sub Private Sub Gauss(a, N) Dim i As Integer, j As Integer, k As Integer, d As Double For k = 0 To N - 2 For i = k + 1 To N - 1 d = a(i, k) / a(k, k) For j = k + 1 To N a(i, j) = a(i, j) - d * a(k, j) Next j Next i Next k For i = N - 1 To 0 Step -1 d = a(i, N) For j = i + 1 To N - 1 d = d - a(i, j) * a(j, N) Next j a(i, N) = d / a(i, i) Next i End Sub Private Function Newton(dfactor As Double, pnum As Integer) As Double Dim F As Double, dF As Double, r As Double, r1 As Double, tol As Double, w As Double r = 0.5 w = 1 'とりあえずの誤差の初期値 tol = 1E-10 '誤差許容度 While w > tol F = 1 / (1 + r) ^ (pnum + 1) - dfactor dF = -(pnum + 1) / (1 + r) ^ (pnum + 2) r1 = r - F / dF w = Abs(r - r1) r = r1 Wend Newton = r End Function r = r1 Wend Newton = r End Function
Visual Basic