이전 글에서 Range의 속성과 메서드에 대해서 확인해 보았습니다. 그런데, VBA에서 셀 또는 셀 범위를 지정할 때 Range 뿐만 아니라 Cells라는 Worksheet의 속성도 있습니다. 이번에는 Cells라는 속성에 대해 알아보면서 Range와 함께 예제를 통해 확인해 보겠습니다.
VBA 엑셀 개체 다루기 - Range
VBA는 사용자가 오피스 프로그램을 보다 폭넓게 사용할 수 있도록 하기 위하여 Visual Basic 프로그래밍 언어로부터 왔습니다. 이번에는 VBA로 엑셀의 여러 가지 개체들을 사용할 수 있는데 이들 중
mr-johndoe.tistory.com
1. Cells
Range는 하나의 개체로서 사용되지만 Cells는 개체의 속성입니다. 하지만 아래 사용하는 방법을 보시면 마치 개체처럼 사용됩니다.
Cells (행번호, 열번호)
위와 같이 사용 가능하지만 실제는 앞에 ActiveSheet. 이 생략되어 있습니다.
또한, Cells는 속성으로 Range 개체의 속성으로도 사용 가능합니다.
하지만 Cells는 셀 하나를 선택할 때는 사용 가능하지만 셀 범위를 선택할 수는 없습니다. 셀 범위를 선택할 때는 Range를 사용하여야 합니다.
2. 예제를 통해 Cells와 Range 확인
엑셀을 여시고 VBE창을 여시고 Module을 생성합니다. 그리고, 다음과 같이 Module 창에 코드를 작성합니다.
Public Sub 셀선택()
Range("A1") = 13
Cells(1, 2) = 10
ActiveSheet.Cells(2, 2) = 11
End Sub
Range("A1") = 13
=> A1 셀에 값으로 13을 입력하라는 의미입니다.
Cells(1, 2) = 10
=> 1행, 2열 셀 즉, B1 셀에 10을 입력하라는 의미입니다.
ActiveSheet.Cells(2, 2) = 11
=> 2행, 2열 셀 즉, B2 셀에 11을 입력하라는 의미입니다. 윗 줄의 코드는 ActiveSheet. 이 생략되어 있다는 것을 보여드리기 위해 입력하였습니다.
이번에는 셀 범위를 지정하는 경우 Range를 사용하는 예를 확인해 보겠습니다.
다음 [그림 1]과 같이 엑셀 시트에 데이터를 입력합니다. 꼭 그림과 같은 데이터를 입력하지 않고 여러분이 원하시는 아무 데이터나 입력하시면 됩니다.
그리고, 다음과 같이 Module 창에 코드를 작성합니다.
Public Sub 셀범위선택()
Range("A1:D1").Clear
Range("A2", "D2").Clear
End Sub
코드를 다 작성하시고 실행을 시키시면 A1 셀부터 D1 셀에 입력한 데이터와 A2 셀부터 D2 셀에 입력한 데이터가 삭제되는 것을 보실 수 있습니다.
그러면 이번에는 Range의 속성으로 Cells를 사용하는 예를 확인해 보겠습니다.
다음과 같이 Module 창에 코드를 작성합니다.
Public Sub Cells속성()
Range("B1:D1").Cells(1, 1) = 10
Range("B1:D1").Cells(1, 2) = 11
Range("B1:D1").Cells(2, 1) = 12
End Sub
위의 코드를 실행하면 B1 셀에는 10이, C1 셀에는 11이, B2 셀에는 12가 입력되는 것을 보실 수 있습니다.
코드를 살펴보면,
Range("B1:D1").Cells(1, 1) = 10
=> B1 셀부터 D1 셀 범위에서 1행 1열은 범위 시작 셀로 B1 셀을 가리킵니다. 그러므로, B1 셀에 10을 입력하라는 의미입니다.
Range("B1:D1").Cells(1, 2) = 11
=> B1 셀부터 D1 셀 범위에서 1행 2열은 범위 시작 셀에서 1열 우측으로 이동한 C1 셀을 가리킵니다. 그러므로, C1 셀에 11을 입력하라는 의미입니다.
Range("B1:D1").Cells(2, 1) = 12
=> B1 셀부터 D1 셀 범위에서 2행 1열은 범위 시작 셀에서 1행 아래로 이동한 B2 셀을 가리킵니다. 그러므로, B2 셀에 12를 입력하라는 의미입니다.
'엑셀 > VBA' 카테고리의 다른 글
VBA Range의 SpecialCells 속성 이용하기 (0) | 2021.12.11 |
---|---|
엑셀 데이터를 Table로 사용하는 것을 VBA로 구현 - CurrentRegion (0) | 2021.10.20 |
VBA 엑셀 개체 다루기 - Range (0) | 2021.10.18 |
VBA WorksheetFunction 사용 (0) | 2021.10.13 |
VBA 수식 입력하기 - Formula (0) | 2021.10.12 |