본문 바로가기
  • Welcome!
VBA, VB.NET For Creo

Module

by ToolBOX01 2023. 8. 2.
반응형

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)