Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 영역을 입력받는 RefEdit 컨트롤 사용하는 방법

엑셀(Excel)/VBA
반응형

엑셀에서 함수의 인수나 에디터 박스에 셀 영역을 입력 받을 수 있는 것들이 있습니다. 만약 사용자가 직접 만든 UserForm 에 셀 영역을 입력 받는 에디터 박스를 만들고 싶다면 어떤 컨트롤을 사용해야 할까요? 도구 상자에는 RefEdit 라는 컨트롤이 있습니다. 이 컨트롤은 엑셀에서 함수의 인수로 영역을 지정할 때 보았던 것과 동일한 기능을 합니다.

 

 

영역 지정 컨트롤은 그림과 같습니다. 마우스로 영역을 드래그 하면 자동으로 영역을 가리키는 식이 만들어 집니다. 이런 기능을 하는 컨트롤이 RefEdit 입니다.

엑셀 VBA 영역을 입력받는 RefEdit 컨트롤 사용하는 방법

 

VBA 에디터에서 폼을 추가합니다. 그리고 도구 상자 제일 아래쪽에 보시면 RefEdit 라는 컨트롤이 있습니다. 그 컨트롤을 폼에 추가해 줍니다

엑셀 VBA 영역을 입력받는 RefEdit 컨트롤 사용하는 방법

 

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기
엑셀 VBA 반복문 For Next 사용하기
엑셀 VBA Function 와 Sub 프로시저의 차이점과 사용법 알아 보기
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기
셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법

 

 

 

이번에 만든 폼은 RefEdit 로 영역을 입력 받아 [확인] 버튼을 누르면 색상을 변경하는 기능을 구현할 것입니다. [취소] 버튼은 창을 닫습니다

엑셀 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 함수를 이용합니다

엑셀 VBA 영역을 입력받는 RefEdit 컨트롤 사용하는 방법
엑셀 VBA 영역을 입력받는 RefEdit 컨트롤 사용하는 방법

 

 폼을 실행하고 RefEdit 에 영역을 지정합니다그럼 영역의 절대 주소 값이 들어가게 됩니다그리고 확인 버튼을 눌러 함수를 실행합니다함수 안에는 지정한 영역에 글꼴 색을 변경하는 소스가 있습니다

 

엑셀 VBA 영역을 입력받는 RefEdit 컨트롤 사용하는 방법

 

폼에서 확인 버튼을 누른 결과는 다음과 같습니다. 선택한 영역의 폰트 색상이 변경되었습니다

 

엑셀 VBA 영역을 입력받는 RefEdit 컨트롤 사용하는 방법

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 매크로 디버깅, 디버그 코드 분석하기
엑셀 VBA 반복문 For Next 사용하기
엑셀 VBA Function 와 Sub 프로시저의 차이점과 사용법 알아 보기
엑셀 VBA 통합 문서 문서가 열리는 순간 기능 구현하기
셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법
반응형
Posted by 녹두장군1
,