Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 선택한 영역 재조절 기능 Selection.Resize 함수 사용하기

엑셀(Excel)/VBA
반응형

Selection 속성의 Resize 함수는 주로 사용자가 선택한 영역을 재조정해서 데이터를 추출할 때 사용합니다. Resize 함수로 영역의 확대/축소가 가능하기 때문입니다. 또는 제목행과 열이 포함된 영역에서 데이터만 추출하고 싶을 때 많이 이용합니다.

 

 

1. 매크로 함수 생성하기

 

먼저 작업 시작을 알리는 버튼을 만들어서 실행할 매크로 함수와 연결하겠습니다. 개발 도구 탭 > 삽입 > 양식 컨트롤 메뉴에서 버튼을 찾아 시트에 추가합니다.

 

다음 오른쪽 마우스를 눌러서 매크로 지정 메뉴를 선택합니다.

 

매크로 지정 팝업창이 뜨면 "매크로 이름" 란에 함수명에 해당하는 이름을 넣고 오른쪽 사이드에 새로 만들기 버튼을 클릭합니다.

 

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 영역 선택하는 여러가지 방법
엑셀 VBA 시트에서 데이터 영역 구하기
엑셀 VBA 영역(Range) 배열(Array) 변경하기
엑셀 VBA 영역에서 셀, 삭제하기
셀 VBA 셀을 병합하는 Merge 함수 사용하기



 

 

2. 영역 확대 및 축소

 

이제 버튼과 연결할 함수를 작성해 보겠습니다. 함수 내에서 사용할 속성은 Selection 입니다. Selection 은 현재 선택된 범위 또는 항목을 참조하며 값을 조작하는 데 사용합니다. 함수 형식은 Selection.Resize(행 크기, 열 크기) 입니다. 함수의 소스 내용은 다음과 같습니다.

Sub 데이터추출()
    Dim rowNum As Integer
    Dim colNum As Integer
        
    rowNum = Selection.Rows.Count
    colNum = Selection.Columns.Count
    
    '' 행/열
    Selection.Resize(rowNum - 1, colNum - 1).Select
End Sub

 

위에서 작성한 함수를 실행해 보겠습니다. 엑셀 시트에서 데이터 추출버튼을 누르면 기존 선택한 영역에서 행과 열을 하나씩 줄인 결과를 보여줍니다.  

 

Resize 파라미터를 행과 열로 구분해서 두 함수를 사용할 수도 있습니다. "" 을 줄일 경우 행 값이 들어가는 매개변수는 빈칸으로 둬야 합니다. 함수 내용은 아래와 같습니다.

Sub 데이터추출()
    Dim rowNum As Integer
    Dim colNum As Integer
        
    rowNum = Selection.Rows.Count
    colNum = Selection.Columns.Count
    
    '' 개별 행/열 줄이기
    Selection.Resize(rowNum - 1).Select
    Selection.Resize(, colNum - 1).Select
End Sub

  

이것으로 Resize 의 사용법은 알았습니다. 이제 제목행을 제외한 나머지 데이터 영역만 선택하기 위해서는 어떻게 해야 할까요? 행을 하나 줄이고 전체를 아래로 한 칸 이동하면 되겠죠. 선택한 영역을 전체적으로 이동하기 위해서는 Offset 함수를 사용해야 합니다. Offset 의 첫 번째 매개변수는 행, 두 번째는 열을 뜻합니다. 입력한 숫자만큼 아래와 왼쪽으로 이동합니다.

Sub 데이터추출()
    Dim rowNum As Integer
    Dim colNum As Integer
        
    rowNum = Selection.Rows.Count
    colNum = Selection.Columns.Count

    '' Offset 을 이용해서 선택 영역 전체를 이동
    Selection.Offset(1, 0).Resize(rowNum - 1).Select
    
End Sub

 

결과는 표 전체에서 상단 타이틀 영역을 제외한 나머지 데이터만 선택이 되도록 작업을 완료했습니다.

 

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 영역 선택하는 여러가지 방법
엑셀 VBA 시트에서 데이터 영역 구하기
엑셀 VBA 영역(Range) 배열(Array) 변경하기
엑셀 VBA 영역에서 셀, 삭제하기
셀 VBA 셀을 병합하는 Merge 함수 사용하기
반응형
Posted by 녹두장군

댓글을 달아 주세요

  1. Favicon of https://valentine92.tistory.com 배아줄기세포 2021.12.14 12:42 신고  댓글주소  수정/삭제  댓글쓰기

    제목에 VAB가 아니라 VBA인거죠?!?