Range
Excel Sheet의 특정 Cell 주소를 지정하는 방법으로 Range 가 있다.
다음 그림에 있는 코드를 넣어보자
Sub Button_Click()
Range("A1") = 1
Range("B2") = 1
End Sub
위에 입력한 코드는
A1 Cell에 1을 입력하고
B2 Cell에 2를 입력하라는 것이다
참고로 Cell 주소는 A1 대신 a1, B2 대신 b2 처럼
소문자로 써도 아무 문제 없다.
실행버튼을 클릭하면 다음과 같이 A1, B2 Cell에 숫자가 입력된다.
숫자를 입력하려면
Range("Cell 주소") = 숫자
를 사용하면 되지만
문자를 입력하려면
Range("Cell 주소") = "문자"
즉, " " 를 써야 한다.
Sub Button_Click()
Range("A1") = "안녕하세요"
Range("B2") = "반갑습니다"
End Sub
" " 를 사용하지 않고
Range("Cell 주소") = 문자
이런 식으로 입력하면 Excel Sheet의 Cell에는 아무것도 입력되지 않는다.
Sub Button_Click()
Range("A1") = 안녕하세요
Range("B2") = "반갑습니다"
End Sub
위 코드를 실행하면
다음과 같이 A1 Cell에는 안녕하세요 라는 글자가 나타나지 않는다.
그 이유는, 문자 자체가 변수로 인식되고
문자 라는 변수에 지정된 값이 입력되는데
아직 지정된 값이 없기 때문이다.
다음과 같이
안녕하세요 라는 변수에 숫자를 지정하고
반갑습니다 라는 변수에 문자를 지정한 후에
Cell 주소에 변수를 입력하고
Sub Button_Click()
안녕하세요 = 999
반갑습니다 = "인사말"
Range("A1") = 안녕하세요
Range("B2") = 반갑습니다
End Sub
실행하면 다음과 같이 Cell에 지정한 값이 입력된다.
Cells
Range 대신 Cells 를 사용할 수도 있다.
Cells(숫자1, 숫자2) 를 사용하면 되는데
숫자1과 숫자2는 Cell의 좌표다.
그런데 Range와 달라서 사용할 때 헷갈릴 수 있다.
Range("B1") 에서 Cell 주소 B1은 B열, 1행 순인데
Cells는 행, 열 순으로 반대로 입력해야 된다.
즉, B1 Cell을 나타내는 것은 Cells(1, 2) 이다.
Sub Button_Click()
Range("B1") = 111
Cells(2, 1) = 222
End Sub
B1 Cell을 생각하고 B는 2번째 열이니까, 1은 첫번째 행이니까
Cells(2, 1) 을 사용하면 아래 그림과 같은 결과를 얻게 된다.
Cells(2, 1) 은 2번째 행, 1번째 열에 해당하는 Cell을 나타낸다.
그런데 B3나 D5 정도는 Cells(3, 2), Cells(5, 4) 로 쉽게 바꿀 수 있는데
CB5 같이 멀찌감치 떨어져 있으면 Cells로 나타내기가 난감하다.
행은 숫자로 나와있으니 아무 문제가 없다지만
열은 몇번째 열인지 바로 계산하기가...
A~Z 가 26열, AA~AZ 가 26열, BA~BZ 가 26열, 그리고 CA~CB가 2열
26 x 3 + 2 = 80
그러므로 CB5 는 Cells(5, 80)
이렇게 계산할 수도 있겠지만
원하는 Cell에 =COLUMN() 을 입력하면 바로 해결할 수 있다.
COLUMN() 은 해당 Cell이 몇번째 열에 있는지 계산해주는 함수다.
이 방법 말고도 바로 알아보는 방법이 있는데
옵션을 변경하는 것이다.
[파일] 탭 - [옵션] - [수식] - [수식 작업] 에서
R1C1 참조 스타일 을 체크한 후 확인을 누르면 되는데
그 결과는 다음과 같이
열에 A, B, C, D... 대신 1, 2, 3, 4 가 보인다.
그런데 이렇게 하면 일반적으로 입력하는 수식이
다음과 같이 익숙하지 않은 방식으로 입력해야 하니, 추천하지 않는다.
대충... 현재 Cell인 (6, 5) 기준에서
4행 위쪽, 4행 왼쪽 Cell + 5행 위쪽, 3행 왼쪽 Cell 이라는 건데... 귀찮아...
COLUMN() 을 활용하자.
Range 대신 Cells를 사용하면 편리할 때가 있는데
Range는 열에 해당하는 문자를 입력하지만
Cells는 행과 열 모두 숫자를 입력하기 때문에
열을 변경할 때 숫자만 바꾸면 쉽게 지정할 수 있다.
예를 들어 Cells(2 + i, 3 + j) 에서
j 에 해당하는 숫자만 바꿔서 입력하면
다른 열을 지정할 수 있는 것이다.
그 외의 방법
Range("Cell 주소") 를 대신해서 편리하게 사용할 수 있는 방법이 있다.
[Cell 주소] 이다.
다음 그림처럼 입력한 후 실행버튼을 클릭하면
Sub Button_Click()
[A3] = 333
[C2] = 444
End Sub
다음과 같은 결과를 얻게 된다.
Range 처럼 열, 행 순서로 입력하는 것은 같은데
[ ] 만 사용하면 되고, " " 은 입력할 필요가 없다.
'Excel VBA 기초' 카테고리의 다른 글
Excel VBA - Columns, Rows (0) | 2023.11.24 |
---|---|
Excel VBA - 다중 Cell 범위 지정하기 (0) | 2023.11.19 |
Excel VBA - 실행버튼 만들기 (0) | 2023.11.18 |
Excel VBA - VBA Editor 살펴보기 (1) (0) | 2023.11.18 |
Excel VBA - 메뉴 활성화 (0) | 2023.11.18 |