본문 바로가기

코딩/엑셀,VBA

[엑셀/VBA] SpecialCells, CurrentRegion, UsedRange

반응형

 

  엑셀을 다뤄본 사람이라면 알겠지만 엑셀에는 Cell을 선택하는 다양한 방법이 존재한다. 참고링크를 보면서 알게 된 내용이지만 Cell을 선택하는 방법 중 Range를 각각 Select하는 방법은 VBA 프로그램에서 속도를 저하시키는 주범이라고 한다. Range를 직접 Select하는 방법보다 SpecialCells, CurrentRegion, UsedRange와 같은 영역 설정 기능들을 활용하는게 효율적이다.

 

  이번 포스팅에서는 엑셀 VBA에서 자주 사용하는 영역 설정 코드 SpecialCells, CurrentRegion, UsedRange에 대한 내용을 알아본다. 설명을 위해 아래와 같이 임의의 데이터를 엑셀 시트에 입력해두었다. 

 

 

 

1. CurrentRegion

 

  사용영역만을 선택하는 대표적인 기능. 결과에서 보듯이 아래 코드를 실행시 데이터가 입력 된 연속 된 영역이 모두 선택된다.(연속 된 영역이라는게 중요)

 

 

<코드>

#데이터가 입력 된 부분만 Copy
ActiveSheet.Range("A:F").CurrentRegion.Select

 

결과

 

 

2. UsedRange

 

  UsedRange는 1번 CurrentRegion과 마찬가지로 해당 시트에서 데이터가 입력 된 연속 된 영역을 지정한다. CurrentRegion과 차이점은 CurrentRegion의 코드 앞 부분은 반드시 엑셀의 셀 영역을 나타내는 Range 개체여야 한다.

UsedRange는 아래에서 보듯이 WorkSheet 개체를 통해 접근한다.

 

  결과는 1번과 동일하다.

 

 

<코드>

#활성화 된 시트에서 사용하고 있는 연속 된 영역만 선택
ActiveSheet.UsedRange.Select

 

결과

 

 

3. SpecialCells

 

  이름에서 짐작할 수 있는 내용이지만 어떤 조건들을 만족하는 특정 셀 영역을 설정하는 코드이다. 1,2번의 연속 된 영역만 설정할 수 잇는 CurrentRegion, UsedRange와 다르게 조건에 따라 여러 영역을 설정할 수 있다.

사용법은 아래와 같다.

 

* 사용법

영역(Range 개체).Specialcells(Celltype, Value)

 

  -. .SpecialCells 앞에 오는 코드는 무조건 영역(Range)를 나타내는 코드이다.

  -. SpecialCells 함수의 매개변수인 Celltype, Value는 아래와 같은 형식을 가질 수 있다. Celltype의 경우 종류가 많지만 자주 쓰이는 부분만 정리했다.

 

 

* CellType : 셀 타입에 따라 설정하는 옵션

Celltype 설명
xlCellTypeBlank 비어 있는 셀 선택
xlCellTypeConstants 상수를 포함 한 셀 선택
xlCellTypeLastCell 사용 범위에서 마지막 셀 지정하기
xlCellTypeVisible 보이는 모든 셀 지정
xlCellTypeFormulas 수식을 포함하고 있는 셀 지정
xlCellTypeSameFormatConditions 동일한 서식 셀 지정

 

* Value : 값에 따라 영역을 설정하는 옵션

Celltype 설명
xlErrors 에러가 있는 셀 지정
xlLogical 수식이 있는 셀 지정
xlNumbers 숫자에 해당하는 셀 지정
xlTextValues 텍스트에 해당 하는 셀 지정

 

 

SpecialCells 예시를 들기 위해 위 엑셀 파일을 그대로 사용해 코드를 작성해보자.

 

 

예시1)

#활성화 된 시트에서 사용영역 중 빈칸만 선택
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Select

 

결과

 

예시2)

#A열에서 상수만 선택
Range("A:A").SpecialCells(xlCellTypeConstants).Select

 

 

결과

 

 


참고링크1 : https://m.blog.daum.net/laviedor/16931452

 

VBA 작성시 참고사항 <니꾸>

매크로 작성 시 주의해야 할 사항은 다양하다. 하지만 아래와 같은 기본적인 내용을 기억하면 좋은 코딩에 조금이라도 도움이 될 것이다. 엑셀의 기본기능 및 기존 함수(built-in function)기능을 익

blog.daum.net

참고링크2 : https://mainia.tistory.com/1276

 

엑셀(Excel) VBA - SpecialCells 속성을 이용해 조건에 맞는 셀 선택하기

엑셀(Excel) VBA - SpecialCells 속성을 이용해 조건에 맞는 셀 선택하기 환경 : Microsoft Excel 2010 SpecialCells 속성은 특정영역의 셀을 선택할수 있도록 해 줍니다. 엑셀에서 이동옵션을 사용할 때 빈셀을..

mainia.tistory.com

 

728x90