엑셀 매크로 SpecialCells 조건에 맞게 셀 선택 방법

 이번 포스팅은 엑셀 매크로 SpecialCells 조건에 맞게 셀 선택 방법 대해서 작성하도록 하겠습니다. 엑셀 매크로 함수 중 원하는 조건에 맞게 셀을 선택하는 함수가 있는데 그게 바로 SpecialCells입니다.

SpecialCells 함수를 이용하면 원하는 조건에 맞게 손쉽게 셀을 선택하실 수 있고 선택한 셀로 원하시는 매크로 코드를 꾸민다면 더 다양하게 활용이 가능합니다. 


SpecialCells 기본 함수 구성

: 먼저 SpecialCells 함수에 대한 기본 구성을 설명 드리도록 하겠습니다. SpecialCells 함수에는 입력해야 하는 값이 2가지가 있습니다. 하나는 어떤 서식을 가지고 있는지에 대한 조건 값이고 다른 하나는 해당 셀 값이 숫자인지 에러인지를 판별하는 조건입니다.

  SpecialCells 기본 함수 구조는 “SpecialCells(조건1, 조건 2)”로 표현할 수 있고 조건 1을 먼저 설정을 하시고 조건 1에 맞게 조건 2를 설정하시는 걸 추천드립니다. 

 쉬운 예로 엑셀에 보면 맨 왼쪽에 보면 “찾기 – 이동옵션” 메뉴를 활성화해보면 여러 가지 옵션에서 “빈셀” 항목이 있는데 이 비셀 항목을 선택을 하게 되면 선택한 셀 기준으로 주위 범위 안에 빈셀을 선택을 하게 됩니다. 

엑셀-이동옵션-메뉴
엑셀-이동옵션-메뉴

 

이럴 때 SpecialCells 기존함수 구조는 아래와 같이 표현할 수 있습니다.

: ActiveSheet.Range(“특정 셀”). CurrentRegion.SpecialCells(xlCellTypeBlanks). Select 

 조건 1은 무조건 선택을 해야 하지만 조건 2는 입력하지 않아도 됩니다. 즉 조건 1을 이용한 설정으로 셀을 선택을 하게 됩니다. 빈셀을 찾는 “xlCellTypeBlanks” 말고도 여러 조건을 이용하여 활용을 할 수 있습니다. 


조건 1 속성 값 속성 값 풀이 설명
xlCellTypeBlanks  비어있는 셀 지정
xlCellTypeAllFormatConditions  모든 서식의 셀 지정
xlCellTypeAllValidation  유효성조건에 만족하는 셀 지정
xlCellTypeComments  메모를 포함하고 있는 셀 지정
xlCellTypeConstants  상수를 포함하고 있는 셀 지정
xlCellTypeFormulas  수식을 포함하고 있는 셀 지정
xlCellTypeLastCell  사용된 범위에서 마지막 셀 지정
xlCellTypeSameFormatConditions  동일한 서식의 셀 지정
xlCellTypeSameValidation 동일한 유효성 조건 셀 지정
xlCellTypeVisible  보이는 모든 셀 지정

SpecialCells 추가 조건

: 위에서 설명드린 대로 조건 1만 설정을 해도 충분히 함수 실행이 가능합니다. 하지만 조건 1을 통해서 선택한 셀 값에 대한 조건을 추가적으로 설정하고 싶은 분들은 조건 2 항목에 추가적으로 설정을 하시면 됩니다. 

 조건 2 항목에 설정하는 값으로는 셀 값이 에러, 수식, 숫자, 텍스트 인지에 대한 조건 값으로 각 조건 값 속성을 통해서 더 자세하게 원하는 셀을 선택하여 코드 구현이 가능합니다. 

조건 1 속성 값 속성 값 풀이 설명
xlErrors  셀 값 내용이 에러가 있는 셀
xlLogical  셀 값 내용이 수식이 있는 셀
xlNumbers  셀 값 내용이 숫자에 해당하는 셀
xlTextValues  셀 값 내용이 텍스트에 해당하는 셀

 

 

SpecialCells 함수 활용하기

: 그럼 위에서 설명 드린 SpecialCells 조건 1, 2 값을 이용하여 코드를 구성해보도록 하겠습니다. 조건 1만 사용한 코드와 조건 1, 2 모두 사용한 코드 이렇게 2가지로 구분해서 코드를 구성해보도록 하겠습니다. 

1) 조건 1 만 설정한 코드 구현

: 조건 1을 빈 셀만 선택하는 걸로 설정을 해서 코드를 구현하면 아래와 같습니다. Range 괄호 안에 기준 셀을 정해야 하는데 저는 “A1″을 기준으로 설정을 하였습니다. 

======================================================================

Sub Blank_only()

ActiveSheet.Range(“A1”). CurrentRegion.SpecialCells(xlCellTypeBlanks). Select

End Sub

======================================================================

 

위의 코드를 실행을 해보면 아래와 같이 “A1” 셀 기준으로 아래와 같이 비셀이 선택이 되는 걸 확인하실 수 있습니다. 

Specialcells-빈셀-코드
Specialcells-빈셀-코드

2) 조건 1, 2 모두 설정한 코드 구현

: 그럼 이번에는 조건 1, 2 모두 설정한 코드를 구현해보도록 하겠습니다. 위에서 설명드린 코드는 빈셀을 찾는 건데 조건 2를 활용을 하려면 셀 값이 있는 항목을 활용을 하셔야 합니다.

 

 조건 1에는 값이 있는 셀을 선택하라는 속성 값을, 조건 2에는 셀 내용이 텍스트인 것을 선택하라고 설정해보도록 하겠습니다. 전체 코드를 구현하면 아래와 같습니다.

===========================================================================

Sub Blank_only()

ActiveSheet.Range(“A1”). CurrentRegion.SpecialCells(xlCellTypeConstants, xlTextValues). Select

End Sub

===========================================================================

 위에 코드를 실행해보면 셀 값이 있는 셀 중에 셀 내용이 텍스트인 셀이 선택이 되는 걸 확인하실 수 있습니다. 참고로 셀 값이 숫자인 것을 선택을 하시려면 조건 2 값에 “xlNumbers “을 입력해주시면 됩니다.

Specialcells-텍스트값-코드
Specialcells-텍스트값-코드

 여기까지 작성하도록 하겠습니다. 지금까지 엑셀 매크로 SpecialCells 조건에 맞게 셀 선택 방법 대해서 글을 작성하였습니다. 제 포스팅을 통해서 조금이나마 엑셀 매크로 활용하시는데 도움이 되셨으면 합니다. 감사합니다.


Leave a Comment