Appia의 IT세상

비주얼베이직(Visual Basic, VBA) 엑셀(Excel)에서 사용할 수 있는 피보나치 수열 함수 만들기 본문

Programming/VisualBasic_VBA

비주얼베이직(Visual Basic, VBA) 엑셀(Excel)에서 사용할 수 있는 피보나치 수열 함수 만들기

Appia 2021. 3. 26. 05:26
반응형

비주얼베이직(Visual Basic, VBA) 엑셀(Excel)에서 사용할 수 있는 피보나치 수열 함수 만들기

비주얼베이직(Visual Basic, VBA) 엑셀(Excel)에서 사용할 수 있는 피보나치 수열 함수 만들기

정확히 언제인지, 대학 때인지 고등학교 때인지 피보나치 수열에 대해서 공부한적이 있습니다. 그래서 오늘은 피보나치 수열에 대해서 간단히 포스팅을 해볼까 합니다. 피보나치 수열이란 가장 쉽게 다음과 같은 공식이라고 생각하시면 쉬울 것 같습니다. 

피보나치 수열 공식 

즉, 처음 0, 1 다음 부터 앞에 두수를 더한 결과를 그다음에 나타냅니다. 즉, 세 번째 자리에 0, 1를 더해서 1이나오고 넷번째 자리에는 1과 1을 더해서 2가 나옵니다. 이와 같은 방식으로 연산이 이루어지는 것을 피보나치 수열이라고 합니다. 

그럼 이 부분에 대해서 코딩으로 작업을 해보도록 하겠습니다.

관련된 부분에 대해서 필요로 하는 사전 지식 : 

1. 함수 생성 부분

비주얼베이직(Visual Basic, VBA) 함수 선언, 엑셀에서 선언한 함수 활용하기

 

비주얼베이직(Visual Basic, VBA) 함수 선언, 엑셀에서 선언한 함수 활용하기

비주얼베이직(Visual Basic, VBA) 함수 선언, 엑셀에서 선언한 함수 활용하기 이번 포스팅에서는 비주얼 베이직에서 함수를 선언하는 방법에 대해서 이야기를 해보고자 합니다. 이렇게 비주얼

appia.tistory.com

2. 반복문 

비주얼베이직(Visual Basic, VBA) 반복문 살펴보기 01(for-loop, for-each loop)

 

비주얼베이직(Visual Basic, VBA) 반복문 살펴보기 01(for-loop, for-each loop)

비주얼베이직(Visual Basic, VBA) 반복문 살펴보기 01(for-loop, for-each loop) 앞선 포스팅에서는 조건문 즉, 특정 조건에 맞춰서 동작할 수 있게 하는 분기문에 대해서 이야기를 해봤습니다. 이번 포스팅

appia.tistory.com

먼저, 구하고자 하는 피보나치 수열의 몇번째 값을 원하는지에 대해서 수를 입력받도록 할 것입니다. 그리고 나서, 이 입력받은 수가 0, 1일때는 그냥 0, 1을 나열해주면 됩니다. 그리고 2번째 이상일 때는 반복문을 돌면서, 첫번재 값(0)과 두번째 값(1)을 더해서 변수에 저장을 합니다. 그리고 첫번째는 이전값(ForVar)로 저장하고, 연산한 결과(Ans)을 현재 값으로 저장하도록 하여 루프를 돌리도록 합니다. 그 루프 끝으로는 연산된 결과인 Ans을 리턴하도록 하겠습니다. 

간단히 짜보면 다음과 같은 결과가 나타날 것입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Public Function Fibo(iNum As Integer) As Integer
    Dim Ans As Integer
    Dim ForVar As Integer
    Dim CurVar As Integer
    
    Ans = 0
    ForVar = 0
    CurVar = 1
    
    If iNum > 1 Then
        
        For Index = 1 To iNum - 2
            
            Ans = ForVar + CurVar
            ForVar = CurVar
            CurVar = Ans
            MsgBox (Ans)
            
        Next
        
    Else
        Ans = iNum
        
    End If
    Fibo = Ans
    
    
End Function
 
cs

 

 일단, 처음 연산을 시작하는 것이 3번째 자리이기 때문에 입력받은 수에서 2를 빼줘야지만 정상적으로 연산을 할 수 있습니다. 

Visual Basic의 코딩한 화면

그리고 간단히 예시로 적용해보면 10번째 피보나치 수열의 값은 89라는 것을 알 수 있습니다. 

위의 코딩한 부분을 엑셀에서 적용한 결과 

이와 같은 방식으로 앞선 코딩한 부분에 대해서 활용할 수 있습니다. 

비주얼베이직(Visual Basic, VBA) 실행하기

 

비주얼베이직(Visual Basic, VBA) 실행하기

비주얼베이직(Visual Basic, VBA) 실행하기 약 거의 20년 전에 대학 1학년 때에 가장 먼저 들었던 과목이 바로 비주얼 베이직이었습니다. 하지만, 현재는 개발 영역에서는 많이 사용되지 않으나, 엑셀

appia.tistory.com

이번 포스팅에서는 비주얼베이직(Visual Basic, VBA) 엑셀(Excel)에서 사용할 수 있는 피보나치 수열 함수 만들기라는 주제로 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments