Excelシート上にフィボナッチ数列を表示するVBAのサンプルを紹介します。
フィボナッチ数列とは
まずフィボナッチ数列が分からないとコーディングできないので、簡単にフィボナッチ数列をおさらいします。
フィボナッチ数列とは、前の2つの数字を足していって次の値を追加してできる数列です。
フィボナッチ数列の計算手順
最初は1と1の2つの数字を足します。すると1+1=2で「1,1,2」の数列ができます。
次は1+2=3なので、「1,1,2,3」の数列ができます。
次は2+3=5なので、「1,1,2,3,5」の数列ができます。
以降もこれを繰り返して下記の数列が出来上がります。
1,1,2,3,5,8,13,21,34,55,89,144,233・・・
これがフィボナッチ数列となります。
プログラムの仕様
画面仕様
ボタンを押下すると、「求める項数」に指定した数分、フィボナッチ数列を4行目に作成します。
以下の画面だと10個の数列ができます。
項目仕様
画面の中の各項目の項目仕様は、以下のとおりです。
No. | 項目名 | 説明 | 備考 |
---|---|---|---|
1 | 求める項数 | 出力する項の数です。 | |
2 | 項 | 項番号を示す行です。 | |
3 | フィボナッチ数列 | ボタンを押下した際にフィボナッチ数列が出力される行です。 | |
4 | ボタン | フィボナッチ数列を出力する際に押下するボタンです。 |
ソースコード
ソースコードは下記のとおりです。
再起処理させるコードにするとプログラムが読みやすいですが、再起処理はパフォーマンスが落ちる懸念があるのでループ処理させます。
Sub ボタン1_Click()
Dim num1 As Long
Dim num2 As Long
num1 = 1
num2 = 1
Dim limit As Long '添え字の最大値
limit = Worksheets("Sheet1").Cells(2, 2).Value '求める項数
Worksheets("Sheet1").Cells(4, 2).Value = num1 '項1をセル出力
Worksheets("Sheet1").Cells(4, 3).Value = num2 '項2をセル出力
Dim i As Long
i = 3 '項3以降の添え字の初期値
Dim nextNum As Long
nextNum = 0 '項3以降の値の初期値
'項3以降をセル出力
Do While i <= limit
nextNum = num1 + num2 '項の値を計算
Worksheets("Sheet1").Cells(4, i + 1).Value = nextNum '項をセル出力(D3セル以降)
num1 = num2
num2 = nextNum
i = i + 1
Loop
End Sub
実行結果
下記のキャプチャの通りフィボナッチ数列が出力されました。
参考情報
環境
下記の環境で作成・実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS | Windows10 |
2 | Excel | Excel2016 |
以上です。
コメント