반응형

기울임체는 확실하지 않은 내용으로 향후 수정될 수 있음

개인공부용이지만 댓글이나 구독은 꾸준히 하는데 큰 도움이 됩니다. 


학습일자 : 2020.11.08

학습방법 : 업무 자동화 올인원 패키지, 패스트캠퍼스

이전글 보기 : 001. 워크시트 병합하기(1)

실습목표

 

메크로 적용 후의 화면

 

 복수의 시트(영업1팀, 영업2팀, 영업3팀)에 있는 특정한 값들을 새로운 시트(영업팀)를 만들어 병합하는 작업이다. 여러개로 나뉘어 있는 표를 '병합' 할 때 응용할 수 있다. 

 

실습내용

 

 

1) [Method] Count

 앞 개체의 개수를 표시한다. 예시의 Sheets.Count 같은 경우는 Sheet의 개수를 나타낸다. 본 예제에서는 Sheet 수가 4개이므로 2번 시트부터 4번 시트까지 동일한 명령을 반복하여 수행한다 (2 To Sheets.Count)

2) [Property] CurrentRegion

 특정 셀과 인접한 블록 영역을 나타낸다. 엑셀에서 다음과 같은 단축키를 눌렀을 때와 동일한 영역을 나타낸다. 

  • Ctrl + a
  • Ctrl + Shift + 8

 예제와 같이 CurrentRegion을 사용하기 전에 특정 셀을 선택(Select)하는 명령이 선행되는 경우가 많다. 또한 CurrentRegion은 속성[Property]이므로 뒤에 Select라는 함수[Method]가 연이어 나오는 경우가 많다. ( CurrentRegion.Select) 

3) [Property] Offset(X, Y)

 기준 영역(예제에서는 Selection)에서 X(행)과 Y(열) 만큼 이동한 영역을 반환한다. 엑셀의 Offset 함수와 개념이 비슷하다. 특정 영역을 기준으로 상대적인 위치를 나타내는 경우에 자주 사용된다. 

 위에서 설명한 CurrentRegion과 마찬가지로 이동은 하지만, Offset 자체로 선택은 하지 않으므로 Offset(X, Y).Select 처럼 주로 Select와 함께 사용된다. 

4) [Property] Resize (Rowsize, Columnsize)

 Offset이 영역을 '이동'한다면, Resize는 영역을 '조정'한다. 기준 영역의 '가장 왼쪽 위 셀'을 기준으로 Rowsize(열 크기)와 Columnsize(행 크기)만큼의 영역을 반환한다. 예제를 갖고 설명을 하면,

Selection.Offset(1, 0).Resize(Selection.Rows.Count -1).Select

 선택된 영역(Selection)에서 Offset으로 한 행을 내리고, Resize로 현재 열의 수보다 -1 적게 줄인다. 결국 맨 윗 행을 영역 해제하는 효과를 가져온다. 그리고 누누히 언급하지만 Resize 역시 Property이므로 마지막에 Select라는 함수(Select)가 사용되었다. 

5) [Property] End

  종단셀이라고도 부른다. 'Ctrl + 방향키'를 누르는 것과 같다. 보통 '(기준셀).End(방향)'의 형식으로 활용된다. 방향키는 위, 아래, 좌, 우 4가지가 있으므로 정리하면 다음과 같다.

  • End(1) / End(xlToLeft) : 좌로 이동한다
  • End(2) / End(xlToRight) : 우로 이동한다
  • End(3) / End(xlUp) : 위로 이동한다
  • End(4) / End(xlDown) : 아래로 이동한다

 그러므로 Range("A65535").End(xlUp) 은 A65535 셀에서 Ctrl+↑을 누른 것과 같다. 즉, 값이 채워진 행의 다음 행을 말한다. (데이터를 차곡차곡 쌓는 의미). 여기서 65535는 엑셀의 최대 행 수로 엑셀버전마다 값이 다르다.

 

에러 발생(오답노트)

 없었음

 

모르는 내용이 있다면 VBA 아카이브(클릭)에서 키워드로 검색하기 ▼

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기