엑셀에서 함수의 인수나 에디터 박스에 셀 영역을 입력 받을 수 있는 것들이 있습니다. 만약 사용자가 직접 만든 UserForm 에 셀 영역을 입력 받는 에디터 박스를 만들고 싶다면 어떤 컨트롤을 사용해야 할까요? 도구 상자에는 RefEdit 라는 컨트롤이 있습니다. 이 컨트롤은 엑셀에서 함수의 인수로 영역을 지정할 때 보았던 것과 동일한 기능을 합니다.
▼ 영역 지정 컨트롤은 그림과 같습니다. 마우스로 영역을 드래그 하면 자동으로 영역을 가리키는 식이 만들어 집니다. 이런 기능을 하는 컨트롤이 RefEdit 입니다.
▼ VBA 에디터에서 폼을 추가합니다. 그리고 도구 상자 제일 아래쪽에 보시면 RefEdit 라는 컨트롤이 있습니다. 그 컨트롤을 폼에 추가해 줍니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기 ▶ 엑셀 VBA 반복문 For Next 문 사용하기 ▶ 엑셀 VBA Function 와 Sub 프로시저의 차이점과 사용법 알아 보기 ▶ 엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 ▶ 엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법 |
▼ 이번에 만든 폼은 RefEdit 로 영역을 입력 받아 [확인] 버튼을 누르면 색상을 변경하는 기능을 구현할 것입니다. [취소] 버튼은 창을 닫습니다.
▼ 다음은 확인을 눌렀을 때 이벤트 내용입니다. RefEdit 컨트롤에 입력된 값을 가져와서 영역 개체로 변환하기 위해 Range() 함수를 사용하였습니다. 그리고 Range 개체에 담긴 영역을 Font.Color 속성으로 폰트 색깔을 변경합니다.
Private Sub CommandButton1_Click() Dim addr As String, rng, cell As Range, min As Double addr = RefEdit1.Value Set rng = Range(addr) For Each cell In rng cell.Font.Color = vbRed Next cell End Sub |
▼ 다음은 취소를 눌렀을 때 이벤트 내용입니다. Unload 함수를 사용해서 창을 닫습니다. Me 는 현재 떠 있는 Form 개체를 가리킵니다.
Private Sub CommandButton2_Click() Unload Me End Sub |
▼ 마지막으로 위에서 만든 폼을 띄우는 버튼을 만들어 보겠습니다. 시트에 버튼을 하나 추가하고 Show 함수를 이용합니다.
▼ 폼을 실행하고 RefEdit 에 영역을 지정합니다. 그럼 영역의 절대 주소 값이 들어가게 됩니다. 그리고 확인 버튼을 눌러 함수를 실행합니다. 함수 안에는 지정한 영역에 글꼴 색을 변경하는 소스가 있습니다.
▼ 폼에서 확인 버튼을 누른 결과는 다음과 같습니다. 선택한 영역의 폰트 색상이 변경되었습니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기 ▶ 엑셀 VBA 반복문 For Next 문 사용하기 ▶ 엑셀 VBA Function 와 Sub 프로시저의 차이점과 사용법 알아 보기 ▶ 엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기 ▶ 엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 매개변수 전달 방식 ByRef, ByVal 의 차이점 (0) | 2023.01.13 |
---|---|
엑셀 VBA 반복문 For Next, For Each Next 사용하기 (0) | 2023.01.11 |
엑셀 VBA 메모의 모양을 직사각형, 풍선, 다이어몬드 형태 만들기 (0) | 2023.01.10 |
엑셀 VBA 기존 AVERAGE 평균 함수 수정해서 나만의 함수 만드는 방법 (0) | 2023.01.10 |
엑셀 VBA 아티클 전체 목록 (12) | 2022.12.23 |
엑셀 VBA 문서에 포함된 하이퍼링크 한번에 삭제하기 (1) | 2022.11.30 |
엑셀 VBA 폰트(Font) 색상과 스타일, 사이즈, 글꼴 변경하는 방법 (0) | 2022.10.27 |
엑셀 VBA Application.Evaluate 사용해서 수식 계산하기 (0) | 2022.07.07 |