Excel and VBA

[VBA] 양식 컨트롤 매크로 함수로 인자 보내는 방법 (매크로 인자 전달)

Crazy-M2M 2023. 4. 4. 19:02
300x250
반응형

안녕하세요. Crazy M2M입니다.
오늘은 양식 컨트롤 매크로 함수로 인자 보내는 방법 대해서 알아보도록 하겠습니다.

 

VBA 양식 컨트롤을 사용해서 동일 기능을 수행해야 하는 경우가 생기는데요.

이럴 때 양식 컨트롤 매크로를 지정해서 사용이 가능합니다. 

근데 동일 기능을 하는 양식 컨트롤이 있다면 양식 컨트롤마다 매크로를 지정하는 것은 비효율적이지요.

이럴 때 동일한 매크로를 사용하면서 양식컨트롤에 인자를 할당해서 매크로에 전달하면 됩니다. 

 

그럼 어떻게 그것을 할 수 있는지?

지금 바로 알아보도록 하겠습니다. 

 

먼저 개발 도구 탭에 Visual Basic을 클릭해서 코드를 먼저 생성해 줄게요.

개발 도구 탭이 안 보인다면 아래 링크를 참고하세요. 

 

https://crazy-m2m.tistory.com/90

 

엑셀(Excel) VBA(Visual Basic) 개발도구 탭 생성하기

안녕하세요. Crazy M2M입니다. 오늘은 엑셀 VBA(Visual Basic for Application) 시작하는 방법에 대해서 알아보도록 하겠습니다. 회사에서 많이들 엑셀(Excel) 사용하게되는데요. 먼가 2% 부족한 부분을 채워줄

crazy-m2m.tistory.com

 

VBA 코드 상자가 나타났습니다. 

 

 

엑셀 시트 개체를 선택하고 오른쪽 클릭 - 삽입 - 모듈을 선택해 주세요. 

 

 

함수를 아래와 같이 작성해 줍니다. 

 

양식 컨트롤에 지정될 매크로 함수입니다. 

인자로 정수를 받아들이고, 이 값을 메시지 박스에 보여주는 기능을 하는 함수입니다. 

 

300x250

 

Sub get_parameter(ByVal value As Integer)
    
    MsgBox "parameter : " + Str(value)

End Sub

 

아래처럼 함수 생성을 완료하였습니다. ㅎㅎㅎ

 

 

이제 함수 생성이 완료되었으니 이제 양식 컨트롤을 삽입해 주겠습니다. 

이해를 돕기 위해 간단히 버튼으로 선택해서 추가해 줄게요. 

 

 

버튼을 선택하고 엑셀 시트에서 드래그를 해서 생성해 주겠습니다. 

그럼 매크로를 지정하라고 나오는데 그냥 취소를 눌러서 양식 컨트롤만 추가해 줄게요. 

나중에 한꺼번에 등록하는 게 편하니 이점 참고하세요. ^^

 

 

이렇게 총 4개의 버튼을 생성하였습니다. 

각 버튼마다 고유한 값을 인자로 보내주기 위해서 여러 개의 버튼을 생성하였습니다. 

 

 

버튼 생성이 완료되었으니 이제 하나하나 매크로를 지정해 볼게요. 

먼저 첫 번째 버튼에 오른쪽 클릭 - 매크로 지정을 클릭합니다. 

 

반응형

 

 

매크로 지정 창이 떴습니다. 

여기에 아래와 같이 입력하면 됩니다. 

 

get_parameter를 매크로 지정 함수로 사용을 하고 그때 인자를 1을 보내겠다는 의미입니다. 

별거는 없는데 이게 키포인트입니다. ㅎㅎㅎ

 

'get_paramerter 1'

 

확인을 눌러서 매크로 지정을 완료합니다. 

 

 

이번에 두 번째 버튼에 오른쪽 클릭 - 매크로 지정을 클릭합니다. 

이번엔 인자를 2를 사용하겠습니다. 

버튼마다 구분이 되어야 하니까요^^

 

'get_paramerter 2'

 

 

세 번째 버튼도 동일하게 진행합니다. 

 

'get_paramerter 3'

 

 

4번째 버튼도 동일!!!

'get_paramerter 4'

 

 

이제 모든 버튼에 매크로 지정이 완료되었습니다. 

버튼을 눌러 기능이 정상적으로 되는지 확인해 봐야겠지요. ㅎㅎㅎ

첫 번째 버튼을 클릭하니!!!

대박 ~~~

인자 1이 정확히 전달되었습니다. ~~~

 

 

 

두 번째 버튼을 클릭하니 2가 전달됩니다.

 

 

3번째 버튼은 3이 전달 ^^

 

 

4번째 버튼은 4가 전달 ^^

깔끔하네요. 

 

 

이렇게 동일 기능에서 인자를 이용해서 함수를 사용하면 함수의 사용 효율도 좋아지고 ~~~

가독성도 높은 코드가 됩니다. 

그리고 불필요한 코드를 줄일 수 있으니 손이 덜 아프겠지요? 

 

이것으로 양식 컨트롤 매크로 함수로 인자 보내는 방법 포스팅을 마치겠습니다. 

그럼 오늘도 칼퇴근!!!

728x90
반응형