Excelシート上にフィボナッチ数列を表示するVBAのサンプルコード

記事内に広告が含まれています。

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.環境バージョン
1OSWindows10
2ExcelExcel2016
環境一覧

以上です。

コメント

タイトルとURLをコピーしました