[ 엑셀 VBA 강좌 ] VBA _ 09 엑셀 의 주요 개체 의 이해 : Range Object , Cells Object 엑셀 교실 Range 오브젝트 는 VBA 로 프로그래밍 을 할 때 가장 많이 사용 하 는 가장 중요 한 오브젝트 입니다 . 엑 셀 에 입력 되 는 대부분 의 데이터 들 이 바로 Range 오브젝트 를 통해 입력 됩니다 . Range 오브젝트 의 개념 만 잘 이해 한다면 나머지 오브젝트 에 도 쉽 게 다가가 실 수 있 을 것 입니다 . Range 오브젝트 는 Worksheet 오브젝트 의 하위 오브젝트 로 시트 내 에 한 개 또는 복수 개 의 셀 들 로 이루어집니다 . 범위 를 의미 하 는 Range 오브젝트 에 주소 를 전달 하 는 방법 을 통해 셀 하나 또는 범위 에 접근 해 작업 을 할 수 있 습니다 . 우선 Range 오브젝트 의 중요 한 구성원 ( 속성 , 메 서드 등 ) 들 은 살펴보 겠 습니다 . VBA 에서 가장 중요 한 오브젝트 중 하나 인 Range 오브젝트 에 자유자재 로 접근 하 기 위한 첫 번 째 과제 는 우선 셀 을 선택 하 는 것 입니다 . 그러 기 위해서 는 Range 속성 과 Cells 속성 의 특성 을 잘 이해 하 고 있 어야 합니다 . 두 속성 에 는 각각 어떤 장단점 이 있 는 지 , 어떤 경우 에 사용 하 면 좋 은지 잘 정리 해 두 시 기 바랍니다 . Range 속성 다음 코드 를 실행 하 면 ' Sheet 1 ' 시트 의 A 1 셀 에 " 예스폼 엑셀 교실 " 이 라는 텍스트 가 입력 됩니다 . 이것 은 Worksheets ( " Sheet 1 ") 이 라는 워크 시트 오브젝트 의 , Range ( " A 1 ") 이 라는 레인지 오브젝트 의 , Value 속성 값 을 " 예스폼 엑셀 교실 " 이라고 지정 해 준 것 입니다 . Range 오브젝트 의 디폴트 ( default ) 속성 값 은 Value 입니다 . 디폴트 속성 은 속 성명 을 따로 붙이 지 않 아도 아래 두 번 째 코드 와 같이 붙인 것 으로 해석 하 게 됩니다 . 이번 에 는 여러 셀 에 동일 한 값 을 넣 어 볼까요 ? 혹 입력 하 려는 위치 에 다른 값 이 들 어 있 으면 메시지 를 표시 하 고 실행 합니다 . 이번 에 는 불연속 적 인 여러 개 의 셀 에 값 을 넣 는 방법 에 대해 살펴보 겠 습니다 . CurrentRegion 은 현재 영역 , 즉 인접 해 있 는 상 / 하 / 좌 / 우의 영역 을 반환 해 주 는 속성 입니다 . 다음 그림 에서 현재 A 1 셀 이 선택 된 상태 에서 Range ( " A 1 "). CurrentRegion . Select 라고 하 면 A 1 셀 과 값 이 있 는 주변 의 인접 한 셀 이 모두 선택 됩니다 . Cells 속성 Cells 속성 을 사용 해도 셀 을 선택 할 수 있 습니다 . 다음 코드 를 실행 하 면 현재 시트 의 B 1 셀 에 " 예스폼 엑셀 교실 " 을 입력 합니다 . Cells 속성 의 경우 , Cells ( 행 , 열 ) 의 형식 으로 표기 합니다 . Cells 의 인수 의 순서 는 Range 속성 의 표현 방법 과 는 반대 이 므로 주의 하 시 기 바랍니다 . Cells 속성 으로 셀 범위 를 선택 하 고자 할 경우 Range 속성 과 조합 하 여 사용 할 수 있 습니다 . Cells 속성 앞 에 어떤 상위 의 개체 도 붙이 지 않 으면 현재 워크 시트 를 대상 으로 합니다 . 특정 워크 시트 개체 를 앞 에 붙이 면 당연히 지정 한 워크 시트 에 접근 한 다음 작업 을 합니다 . 다음 은 ' Yesform ' 시트 의 A 2 셀 에 지정 한 값 을 입력 해 보 겠 습니다 . 이제 Cells 속성 에 대해서 도 이해 가 잘 되 셨 나요 ? ^^; 그럼 제 가 한 가지 문제 를 드려 보 겠 습니다 . 위 와 같이 명령 을 입력 하 였 다면 " 예스폼 엑셀 교실 " 이 라는 텍스트 는 어느 셀 에 입력 될까요 ? ^^; 직접 명령 을 입력 해 보 시 면 결과 에 대해서 는 쉽 게 이해 하 실 수 있 을 것 입니다 . 지금 까지 Range 속성 과 Cells 속성 에 대해 살펴보 았 습니다 . 그런데 Cells 속성 의 경우 , 정의 된 이름 을 사용 할 수 없 으며 , 여러 셀 범위 를 설정 할 때 에 도 단독 으로 는 사용 할 수 없 어 필히 Range 속성 과 조합 을 해야 합니다 . 그렇 다면 위 와 같이 불편 하 게 만 보이 는 Cells 속성 의 장점 으로 는 뭐 가 있 을까요 ? Cells 속성 의 가장 큰 장점 은 인수 에 숫자 값 을 사용 할 수 있 다는 것 입니다 . 프로그래밍 을 하 다 보 면 For 문 이나 Do 문 과 같 은 반 복문 을 매우 많이 사용 하 게 됩니다 . 반 복문 을 이용 하 여 아래 와 같이 구구단 테이블 을 만드 는 프로시 져 를 작성 할 경우 Cells 속성 의 인수 에 변수 를 대입 함 으로써 간단 하 게 작성 할 수 있 게 됩니다 . 만약 Range 속성 만 으로 이러 한 것 을 만들 어야 한다면 프로그래밍 이 좀 더 복잡 해질 것 입니다 . 이런 경우 For 문 이나 Do 문 과 같 은 반 복문 에서 Cells 속성 을 사용 하 면 간단히 프로그래밍 할 수 있 습니다 . 저작 자 표시 변경 금지