プログラミング VBAの質問です。
プログラミング VBAの質問です。 サブルーチンを用いて、以下のプログラムをつくったんですけど、最初の1行だけ作動してRungeのFor文のところが動きません。 特にエラーが返ってくるわけでもないので、どこがおかしいのかわかりません。 問題となっているところと、なおしかたを教えてもらってもよろしいでしょうか? Option Explicit Dim x0 As Double Dim y0 As Double Dim xu As Double Dim h As Double Dim Ty As Double Dim e As Double Dim n As Double Sub Main_Runge() Read_Data Cal_Error Out_Result -1 Runge End Sub Sub Read_Data() x0 = Cells(2, "B") y0 = Cells(3, "B") h = Cells(4, "B") xu = Cells(5, "B") n = (xu - x0) / h End Sub Sub Cal_Error() Ty = Sqr(4 - 0.5 * (x0) ^ 2) e = Abs(Ty - y0) End Sub Sub Out_Result(l As Integer) Cells(l + 3, "D") = x0 Cells(l + 3, "E") = Ty Cells(l + 3, "F") = y0 Cells(l + 3, "G") = e End Sub Sub Runge() Dim i As Integer Dim k1 As Double, k2 As Double, k3 As Double, k4 As Double For i = 0 To n - 1 k1 = h * Fnf(x0, y0) k2 = h * Fnf(x0 + 0.5 * h, y0 + k1 / 2) k1 = h * Fnf(x0 * 0.5 * h, y0 + k2 / 2) k1 = h * Fnf(x0 + h, y0 + k3) Cal_Error Out_Result i Next i End Sub Function Fnf(X As Double, Y As Double) As Double Fnf = -0.5 * X / Y End Function
ベストアンサー
どういう処理なのかは分かりませんが・・・ 画像を見る限り、 Sub Read_Data() ~ xu = Cells(4, "B") h = Cells(5, "B") ~ こういうこと?なのかもです。 (ご提示のコードだとn=0.1となるようです) 見当違いでしたらごめんなさい。
質問者からのお礼コメント
おー!ありがとうございます!無事解決しました!
お礼日時:1/27 15:29