EXCEL - VBA

엑셀 VBA에서 셀 또는 범위 지정하기(1) - Range

별동산 2022. 10. 25. 09:15
반응형

엑셀은 셀은 기준으로 작업을 하게 됩니다.

A1셀에 24를 입력하거나, B1셀에 A1에 2를 곱한 값을 입력하거나 모두 셀을 기준으로 작업을 하게 됩니다.

 

1. 준비 사항

새 통합 문서를 연 다음 개발도구 - Visual Basic 명령을 눌러 Visual Basic Editor를 연 다음

삽입 - 모듈 메뉴 또는 삽입 콤보 박스를 누른 다음 모듈을 클릭하여

모듈 삽입

모듈을 추가하면 그 아래 Module1이 있고, 오른쪽을 보면 빈 코드 창이 열립니다.

모듈이 삽입된 화면

 

오른쪽 코드 창에 sub 범위지정까지 입력하면 그다음 괄호와 End Sub는 자동으로 입력됩니다.

코드 창에 sub 프로시저 작성 화면

단일 셀 또는 여러 셀을 다루는 방법을 알라보는데, 여러 셀을 연속되거나 연속되지 않을 경우를 나눠서 다뤄보겠습니다.

 

2. 단일 셀 지정하기

셀을 지정할 때는 Range 또는 Cells 함수를 이용하게 됩니다. 

가. Range

Application.Range property(속성)에 대한 도움말

Range는 Property(속성)으로서 한 셀 또는 셀 범위를 표시하는 Range Object(객체)를 반환합니다.

 

구문은  expression.Range(cell1, cell2)인데, cell1은 필수이고, cell2는 선택입니다.

 

인수(Parameters)

Cell1 A1형식으로 지정. 연속된 범위는 콜론(:), 교집합은 스페이스(한 칸 공백), 합집합은 콤마(,) 사용.
범위에 대한 이름이 정의된 경우 그 이름 사용 가능
Cell2 왼쪽 위 또는 오른쪽 아래 꼭지점에 해당하는 셀. 한 셀, 전체 열, 전체 행이 될 수 있음

 

속성이기 때문에 범위의 값을 반환하는 것이 기본이고, =(대입 연산자)를 이용해 셀에 값을 입력할 수 있고, .Select 메서드를 이용해 셀(또는 범위)을 선택할 수 있습니다.

 

 

 

① 셀 값 알아내기(반환)

화면 위에서 엑셀 모양 아이콘을 눌러 엑셀로 돌아갑니다.

 

A1셀에 25가 입력된 상태에서

A1셀에 25 입력

 

아래와 같이 sub 프로시저를 작성한 후

A1셀 값을 직접 실행창에 인쇄

 

실행(F5)하면 직접 실행창에 25가 표시됩니다.

직접 실행창

직접 실행창이 없다면 값이 표시되지 않으므로 보기 - 직접 실행창을 클릭하거나 Ctrl + G키를 눌러서 직접 실행창을 먼저 열어야 합니다.

 

Debug.Print 대신

msgbox(range("a1"))

를 사용할 수 있습니다.

 

위와 같이 입력하고 실행하면 아래와 같이 25라는 결괏값을 표시하는 메시지 창이 열립니다.

메시지 창

확인 버튼을 눌러 메시지 창을 닫습니다.

 

② 셀 선택하기

Range("a2").se까지 입력하면 Se로 시작하는 명령어 등 목록이 표시되는데, Select가 선택되어 있으므로 Tab키를 눌러 완성하면 편리합니다. 이때 Enter키를 누르면 완성한 후 한 줄 아래로 커서가 이동합니다.

VB Editor의 자동 완성 기능

실행(F5) 한 후 위에서 엑셀 아이콘 모양의 엑셀 보기 아이콘을 눌러 엑셀로 돌아가면

A2셀이 선택되어 있습니다.

셀이 선택된 화면

③ 셀에 값 입력하기

비주얼 베이직 에디터로 돌아가려면 개발도구 - Visual Basic 명령을 누르면 됩니다.

 

㉮ 방법 1

셀 주소에 값이나 수식을 직접 입력할 수 있습니다.

아래와 같이 작성한 후 실행하면

Sub 범위지정3()
    Range("a2") = 12
    Range("a3") = "=a1*3"
End Sub

 

A2셀에 12, A3셀에 =A1*3이란 수식이 들어가서 75란 값이 표시됩니다. 그러나 셀 포인터는 여전히 A2셀에 있습니다. 엑셀에서는 A3셀에 수식을 입력하고 엔터키를 치면 A4셀에 셀 포인터가 있는데 다른 점입니다.

셀에 값 또는 수식이 입력된 화면

정식 입력 방법은 

Range("a2").Value = 12

라고 .value를 붙여야 하지만 Range 속성의 기본 값이 value이므로 생략해도 됩니다.

 

㉯ 방법 2

Selection 속성을 이용할 수 있습니다.

 

아래와 같이 작성합니다.

Sub 범위지정4()
    Range("b2").Select
    Selection = "=a2*3"
End Sub

범위 선택 및 입력 매크로

위 실행문 중

Range("b2").Select는 b2셀을 선택하라는 의미이고,

Seleciton = "=a2*3" 은 b2셀에 a2*3이라는 수식을 입력하라는 의미입니다.

 

따라서, F5키를 눌러 실행한 후 엑셀을 보면

 

B2셀에 =A2*3이란 수식이 입력되어 있고, 수식의 결괏값 36이 표시됩니다.,

B2셀을 선택한 다음 수식을 입력한 화면

 

Cells 함수 등에 대해서는 따로 다루겠습니다.

범위지정하기.xlsm
0.01MB

반응형