- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excel vbaのプログラムが作成できません)
Excel VBAでフィボナッチ数列のプログラムを作成できない
このQ&Aのポイント
- Excel VBAを学習中で、フィボナッチ数列のプログラムを作成する問題に取り組んでいますが、困っています。
- フィボナッチ数列は帰納的に定義され、その関数fib(n)を定義する必要があります。
- また、fib関数を呼び出すメインプロシージャも作成し、結果を指定したセルに書き込む必要があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
vbaの基礎はできているのですか。 要するにプログラムのメインの部分は dim FIB(1000) FIB(1)=1 : FIB(2)=1 for N=2 to 100 : FIB(N)=FIB(N-1)+FIB(N-2) : next N あとは手続的な話だけでしょう。
その他の回答 (2)
- mindatg
- ベストアンサー率48% (110/227)
回答No.3
No2投稿前に書き換えてミスしてました 誤 Cells(i, 1).Value = CalFIB(i) 正 Cells(i, 1).Value = fib(i)
- mindatg
- ベストアンサー率48% (110/227)
回答No.2
もし、問題文が質問内容の通りなら、「自分で考えて作りました!」とか言うと ボロが必ず出る設問になっています。教えて貰った事を必ず申告しましょう Sub fncFib() Dim i As Integer For i = 1 To 20 Cells(i, 1).Value = CalFIB(i) Next i End Sub Function fib(n As Integer) As Long ' 戻り値 fib = 0 ' 計算結果を格納する配列arrayFibを宣言する ' ただし、47回目の帰納で計算結果がLong型の上限を超える為、配列数は46とする Dim arrayFib(46) As Long arrayFib(1) = 1 arrayFib(2) = 1 For i = 3 To n arrayFib(i) = arrayFib(i - 1) + arrayFib(i - 2) Next i ' 戻り値を設定する fib = arrayFib(n) End Function