본문 바로가기

[VBA] 많은 표 데이터 중 "보고 싶은 데이터"만 추출하는 방법(매크로)

Derrick 발행일 : 2022-07-18
728x90
반응형

  작업중인 하나의 Sheet에 많은 표 데이터가 있을 경우, 이를 한번에 보기 어려울 뿐더러 아래 있는 데이터를 확인하기 위해 스크롤을 한참 내려야 하는 번거로움이 있을 수 있다. 이를 단순하게 단추 한번 클릭함으로써 필요한 데이터만 골라 볼 수 있도록 구현해보자. (행 숨기기, 매크로 사용)

 

[ 각 사업부별로 보고 싶은 데이터만 출력되는 VBA 작업  ]

 

 


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 코드를 분석하고, 불필요한 코드를 삭제하면서 수정해보자.

 

[ 수원사업부 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 속성에는 필요없다.

 

  여기까지 하나의 사업부에 대한 매크로 작동 및 코드 수정을 완료했으므로, 수정된 코드를 복사/붙여넣기를 타사업부에도 동일하게 작동될 수 있도록 적용해보자. 

 

[ 모든 사업부 데이터까지 반영한 VBA 코드 ]

 

  위의 최종 코드에서 조금 다른 점은, 전체 데이터에 대해 먼저 숨기기를 하고(Hidden = True),

보고 싶은 데이터의 영역만 숨기기 취소(Hidden = False)하는 방식으로 아주 간단하게 코드를 구현했다.

 

2. 매크로 단추를 사용하여 실행시키기

  이젠 위에서 최종적으로 생성한 매크로를 바탕으로 '단추'를 사용하여 실행될 수 있도록 하자.

  → 단추 : '개발도구 - 삽입 - 단추(양식 컨트롤)'

 

[ 단추(양식컨트롤) 생성 및 매크로 지정 ]

 

  원하는 위치에 단추를 하나 생성하고, 실행하고자 하는 매크로를 지정한다.

  → '단추 - 마우스 우클릭 - 매크로 지정' 에서 매크로 선택!

  → 'Ctrl + Shift'를 누르고 단추에 화살표가 생성되면 수평으로 동일한 크기의 단추를 생성할 수 있다.

  

[ 단추 가로 간격 동일하게 설정 ]

 

  단추의 텍스트를 변경하고, 단추 사이의 간격을 동일하게 설정하면 더욱 깔끔하게 보인다. 

  → 'Ctrl'를 누르고 모든 단추 선택 후, '서식 - 맞춤 - 가로 간격을 동일하게' 클릭!

  → 그리고 단추마다 실행하고자 하는 매크로를 각각 지정해주면 된다. (단추 - 마우스 우클릭)

 

[ 최종 구현 영상 - 필요한 데이터만 추출하는 법 ]

 

   ※ 단추의 장점은 사용하기 편리하고 쉽게 구현 가능하지만, 채우기 색을 바꿀 수 없다는 단점이 있다.

       따라서 다양한 서식을 적용하고 싶다면, 도형을 삽입해서 매크로를 연결하는 것도 좋은 방법이다.

 

 

댓글