엑셀에서 개발 도구 사용하여 VBA 함수를 작성해 보겠습니다.
양식 컨트롤에 있는 버튼을 추가해서 VBA 로 작성한 함수를 연결하여 버튼을 클릭하면 특정 동작을 하도록 구현해 볼께요.
쉽게 설명되어 있으니 차근차근 해보세요.
AVERAGEIFS 함수를 이용해서 지정한 제조사와 차량 타입에 해당하는 평균연비를 계산하는 예제입니다.
버튼을 클릭하면, 평균 연비를 계산해 줍니다.

1. 버튼을 추가하기 위해 [개발 도구] 메뉴 선택하세요.
[삽입] 리본 메뉴 - [양식 컨트롤]에 있는 중에 맨 앞에 있는 버튼을 선택하세요.

2. 선택한 버튼을 워크시트에 추가하기 위해서 마우스로 드래그하면, 버튼이 그려지고 매크로 지정 대화상자가 뜹니다.
대화상자의 [매크로 이름]이 바로 VBA 함수 명이 됩니다. 직접 VBA 편집창에 들어가서 동일한 이름으로 함수를 만들면 버튼과 연결이 되는 것입니다.
저는 "단추1_Click" 대신 "평균연비_Click"으로 매크로 이름을 변경했어요.

3. "연비 구하기" 버튼을 클릭했을 때 실행될 함수를 만들 차례입니다.
[개발 도구 - Visual Basic] 리본 메뉴를 클릭해서 VBA 편집창을 엽니다.
그리고 함수가 들어갈 Module1 파일을 찾습니다.

만약 모듈 파일이 없을 경우, [삽입 - 모듈] 리본 메뉴를 클릭하면 아래와 같이
" Module 1" 파일이 생성됩니다.

모듈 파일 안에 함수를 작성하면 되는데요, 기본적으로 아래와 같이 생겼습니다.
Sub 매크로명 End Sub |

함수에 들어갈 내용은 워크시트의 수식 편집기에 입력했던 내용 그대로 실행할 것입니다.
Formula 함수가 그 역할을 하게 됩니다. 그리고 Formula 함수를 호출하기 전에 영역이 선택되어야 합니다.
아래 코드는 "연비 구하기" 버튼을 클릭하면 AVERAGEIFS 함수가 실행되어 "E11"셀에 결과 값이 입력된다는 의미입니다.
Sub 평균연비_Click()
Range("E11").Select ActiveCell.Formula = "=AVERAGEIFS(E2:E8,B2:B8,C11,C2:C8,D11)" End Sub |
*AVERAGEIFS 함수는 아래 포스팅 참고하세요.
https://mingscapa.tistory.com/33

[실행결과 1]
제조사에 "현대",타입에 "세단"을 입력한 이후 연비구하기 버튼을 누르면
E11셀에 결과값이 표시됩니다.

[실행결과 2]
제조사에 "기아",타입에 "세단"을 입력한 이후 연비구하기 버튼을 누르면
E11셀에 결과값이 표시됩니다.

오늘을 엑셀VBA에서 버튼을 클릭하고 두가지 이상조건에 부합하는 값을 찾아계산하는 AVERAGEIFS 함수를 사용해 보았습니다.
실생활에서도 응용하면 유용하게 사용될 것 같습니다.
끝!
'엑셀' 카테고리의 다른 글
엑셀 매크로 VBA 첫걸음 (1) | 2023.11.20 |
---|---|
엑셀 매크로 만들고 VBA 소스 코드 확인 방법 (0) | 2023.11.20 |
엑셀 AVERAGEIF, AVERAGEIFS 함수 사용하여 조건에 맞는 값의 평균 구하기 (0) | 2023.11.20 |
엑셀 개수 세기 (0) | 2023.11.20 |
엑셀 숫자에 쉼표 표시하기 (1) | 2023.11.20 |