이번 포스팅은 엑셀 매크로 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 | 셀 값 내용이 텍스트에 해당하는 셀 |
함께 보면 도움이 되는 글
▶ 엑셀 매크로 InputBox 함수 이용 원하는 값 입력 방법
▶ 엑셀 매크로 Clear ClearContents ClearFormat 함수 사용 방법
▶ 엑셀 매크로 글자색 배경색 설정 방법
▶ 엑셀 매크로 VBA 사용 환경 설정방법
▶ 엑셀 셀 텍스트 나누기
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” 셀 기준으로 아래와 같이 비셀이 선택이 되는 걸 확인하실 수 있습니다.
2) 조건 1, 2 모두 설정한 코드 구현
: 그럼 이번에는 조건 1, 2 모두 설정한 코드를 구현해보도록 하겠습니다. 위에서 설명드린 코드는 빈셀을 찾는 건데 조건 2를 활용을 하려면 셀 값이 있는 항목을 활용을 하셔야 합니다.
조건 1에는 값이 있는 셀을 선택하라는 속성 값을, 조건 2에는 셀 내용이 텍스트인 것을 선택하라고 설정해보도록 하겠습니다. 전체 코드를 구현하면 아래와 같습니다.
===========================================================================
Sub Blank_only()
ActiveSheet.Range(“A1”). CurrentRegion.SpecialCells(xlCellTypeConstants, xlTextValues). Select
End Sub
===========================================================================
위에 코드를 실행해보면 셀 값이 있는 셀 중에 셀 내용이 텍스트인 셀이 선택이 되는 걸 확인하실 수 있습니다. 참고로 셀 값이 숫자인 것을 선택을 하시려면 조건 2 값에 “xlNumbers “을 입력해주시면 됩니다.
여기까지 작성하도록 하겠습니다. 지금까지 엑셀 매크로 SpecialCells 조건에 맞게 셀 선택 방법 대해서 글을 작성하였습니다. 제 포스팅을 통해서 조금이나마 엑셀 매크로 활용하시는데 도움이 되셨으면 합니다. 감사합니다.