ToolBOX01 2023. 8. 2. 13:15

VBA(Visual Basic for Applications)에서 모듈을 사용하는 이유는 코드의 구성과 재사용성을 향상시키기 위해서입니다. 
모듈은 VBA 코드를 담는 컨테이너로서, 하나의 모듈에는 하나 이상의 프로시저 (서브루틴 또는 함수)가 포함될 수 있습니다.

1. 코드의 구성: 모듈을 사용하여 코드를 논리적으로 구성할 수 있습니다. 코드를 관련 기능에 따라 모듈로 분리하면
코드가 더 읽기 쉽고 유지 보수하기도 쉬워집니다. 각 모듈은 특정 작업 또는 특정 부분에 집중된 코드를 담게 됩니다.

2. 재사용성: 모듈을 사용하여 코드를 여러 프로시저에서 재사용할 수 있습니다. 일반적으로 사용되는 기능이나 서브루틴은 모듈에 작성하여 필요할 때마다 호출하고 재사용할 수 있습니다. 이렇게 함으로써 코드 중복을 피하고 효율적인 코드를 작성할 수 있습니다.

3. 변수의 스코프 관리: 모듈을 사용하면 변수의 스코프를 제어할 수 있습니다. 모듈 내에서 선언된 변수는 해당 모듈 전체에서 접근 가능하며, 모듈 밖에서는 직접 접근할 수 없습니다. 이를 통해 변수 충돌과 관련된 문제를 방지하고 코드를 더 안전하게 작성할 수 있습니다.

4. 단위 테스트: 모듈을 사용하면 단위 테스트가 용이해집니다. 개별 모듈 단위로 테스트할 수 있으므로 모듈 간의 상호작용에 따른 오류를 빨리 발견하고 수정할 수 있습니다.

5. 코드 은닉성: 비공개(Private) 프로시저를 사용하여 모듈 내부에서만 호출되도록 할 수 있습니다. 이렇게 하면 모듈의 내부 구현이 외부에 노출되지 않으므로 보안성이 높아집니다.

모듈은 VBA 프로젝트의 기본 구성 요소이며, VBA 코드를 잘 구성하고 효율적으로 작성하기 위해 꼭 활용해야 하는 중요한 요소입니다.


모듈을 작성 한후 호출 하는 방법 예제

ko01 모듈

' 모듈(Module1)에 함수 추가
Function AddNumbers(num1 As Double, num2 As Double) As Double
    AddNumbers = num1 + num2
End Function

 

sheet 9 코드

Sub CallModuleFunctionFromSheet()
    Dim firstNumber As Double
    Dim secondNumber As Double
    Dim result As Double

    ' 사용자로부터 두 개의 숫자 입력 받기
    firstNumber = InputBox("첫 번째 숫자를 입력하세요:", "숫자 입력")
    secondNumber = InputBox("두 번째 숫자를 입력하세요:", "숫자 입력")

    ' 모듈(Module1)에 정의된 AddNumbers 함수 호출하여 두 숫자를 더하기
    result = ko01.AddNumbers(firstNumber, secondNumber)

    ' 결과 출력
    MsgBox "두 숫자의 합: " & result
End Sub

 

모듈 호출 방법

 ' 모듈(Module1)에 정의된 AddNumbers 함수 호출하여 두 숫자를 더하기
    result = ko01.AddNumbers(firstNumber, secondNumber)