VBA Macro/VBA Excel

[엑셀] VBA로 스택 구현

루아흐뉴마 2018. 1. 14. 16:31
반응형

S Y N O P S I S #VBA로 스택 구현하기

  • VBA로 구현한 스택이다.
  • 별 건 없다. 필요할 때 가져다 쓰려고 만들어봤다.


VBA Code


Option Explicit
Option Base 0
Const MAXI = 5          'stack 크기 설정
Dim myTop As Long
Sub myStack()
Dim myArr() As Variant

myTop = -1
ReDim Preserve myArr(MAXI) 'stack 크기만큼 배열 초기화

Call push(myArr, "아이템 1")
Call push(myArr, "아이템 2")
Call pop(myArr)
Call pop(myArr)

End Sub


Function push(ByRef fn_arr() As Variant, ByVal fn_item As Variant)

If myTop = MAXI Then             'top index가 스택의 끝이라면
    MsgBox "OVER FLOW!"
    Exit Function                           'push 종료
Else
    myTop = myTop + 1               'top index 증가
    fn_arr(myTop) = fn_item       'push
    push = fn_arr(myTop)
    Debug.Print "PUSH: " & fn_arr(myTop)
End If

End Function


Function pop(ByRef fn_arr() As Variant)

If myTop < 0 Then               'top index가 0이면, 배열이 비어있으면
    MsgBox "ARR IS EMPTY!"
    Exit Function                    'pop 종료
Else                                      '비어있지 않으면
    pop = fn_arr(myTop)        '아이템 꺼내고
    Debug.Print "POP: " & fn_arr(myTop)
    myTop = myTop - 1         'top index 감소
End If

End Function



매크로 실행 동영상


없음.


 Copyright (2018) Ruahneuma. All Rights Reserved.


반응형