[VBA] 많은 표 데이터 중 "보고 싶은 데이터"만 추출하는 방법(매크로)
작업중인 하나의 Sheet에 많은 표 데이터가 있을 경우, 이를 한번에 보기 어려울 뿐더러 아래 있는 데이터를 확인하기 위해 스크롤을 한참 내려야 하는 번거로움이 있을 수 있다. 이를 단순하게 단추 한번 클릭함으로써 필요한 데이터만 골라 볼 수 있도록 구현해보자. (행 숨기기, 매크로 사용)
1. 매크로를 통해 작동 구현 및 VBA 코드 수정하기
1-1. 매크로 기록
아래 영상에서는 총 5개의 사업부에 대한 생산실적 데이터 중, 수원 사업부의 내용만 보이도록 매크로를 기록한 것이다. 먼저 자동매크로를 통해서 작동을 시키고, 이후 코드 분석을 통해 조금 더 효율적이고 편리하게 수정해보자.
→ 기초 매크로에 대한 게시물은 아래 링크에서 확인할 수 있다.
2022.07.06 - [Data Analyst/VBA] - [VBA] 엑셀 매크로와 VBA에 꼭 필요한 기초 자동화 (초급)
[VBA] 엑셀 매크로와 VBA에 꼭 필요한 기초 자동화 (초급)
업무 중 단순, 반복적인 작업을 자동화하거나 함수로 실행할 수 없는 작업들을 쉽게 구현하기 위해 매크로와 VBA를 공부해보자. VBA 기초 문법부터 학습하기보다 실무에 최대한 바로 적용할 수 있
derrick.tistory.com
필요한 데이터만 보이도록 하는 동작 원리의 핵심은 "행 숨기기, 숨기기 취소" 이다.
위에 영상 속 데이터에서 수원 사업부의 데이터는 7행부터 21행까지로, 7~21행은 '숨기기 취소'를 하고
이후 22행부터 마지막 행인 83행까지는 '숨기기' 기능을 활성화하면, 전체 데이터 중 수원 사업부만 표시된다.
1-2. 코드 분석 및 수정
자동 매크로에 의해 자동으로 생성된 VBA 코드를 분석하고, 불필요한 코드를 삭제하면서 수정해보자.
위의 사진 중, 왼쪽의 사진이 자동 생성된 코드이며 오른쪽은 수정 후의 코드이다.
- Select, Selection : 셀을 선택하는 의미로 위에서는 삭제해도 무방하다.
- ActiveWindow.SmallScroll Down:=-3 : 마우스 스크롤을 내리는 코드로 삭제
- Hidden = False / True : 숨기기 기능 취소 / 활성화
- EntireRow, EntireColumn 속성 : 지정한 셀의 전체 혹은 열 전체를 의미하는 속성
ex) Range("A1").EntireRow.Select : A1이 속한 행 전체 선택 (1행)
Range("A1").EntireColumn.Select : A1이 속한 열 전체 선택 (A열)
→ 이미 Rows()를 통해 범위를 설정했기 때문에, EntireRow 속성은 별도로 없어도 무방하다. (삭제)
→ EntireRow는 Range 개체에서 필요하고, 행 or 열을 뜻하는 Rows, Columns 속성에는 필요없다.
여기까지 하나의 사업부에 대한 매크로 작동 및 코드 수정을 완료했으므로, 수정된 코드를 복사/붙여넣기를 타사업부에도 동일하게 작동될 수 있도록 적용해보자.
위의 최종 코드에서 조금 다른 점은, 전체 데이터에 대해 먼저 숨기기를 하고(Hidden = True),
보고 싶은 데이터의 영역만 숨기기 취소(Hidden = False)하는 방식으로 아주 간단하게 코드를 구현했다.
2. 매크로 단추를 사용하여 실행시키기
이젠 위에서 최종적으로 생성한 매크로를 바탕으로 '단추'를 사용하여 실행될 수 있도록 하자.
→ 단추 : '개발도구 - 삽입 - 단추(양식 컨트롤)'
원하는 위치에 단추를 하나 생성하고, 실행하고자 하는 매크로를 지정한다.
→ '단추 - 마우스 우클릭 - 매크로 지정' 에서 매크로 선택!
→ 'Ctrl + Shift'를 누르고 단추에 화살표가 생성되면 수평으로 동일한 크기의 단추를 생성할 수 있다.
단추의 텍스트를 변경하고, 단추 사이의 간격을 동일하게 설정하면 더욱 깔끔하게 보인다.
→ 'Ctrl'를 누르고 모든 단추 선택 후, '서식 - 맞춤 - 가로 간격을 동일하게' 클릭!
→ 그리고 단추마다 실행하고자 하는 매크로를 각각 지정해주면 된다. (단추 - 마우스 우클릭)
※ 단추의 장점은 사용하기 편리하고 쉽게 구현 가능하지만, 채우기 색을 바꿀 수 없다는 단점이 있다.
따라서 다양한 서식을 적용하고 싶다면, 도형을 삽입해서 매크로를 연결하는 것도 좋은 방법이다.
'Data Analyst > Excel VBA' 카테고리의 다른 글
[VBA] 데이터 편집과 서식 설정 자동화하는 프로그램 만들기 (시간 단축!) (0) | 2022.07.24 |
---|---|
[VBA] 양식 컨트롤을 이용한 데이터 추출 프로그램 만들기(고급 필터) (0) | 2022.07.20 |
[VBA] 엑셀 Raw Data 자동 편집 프로그램 만들기 (업무 효율↑) (0) | 2022.07.19 |
[VBA] 엑셀 매크로와 VBA에 꼭 필요한 기초 자동화 (초급) (0) | 2022.07.06 |
댓글