Columns
Range와 비슷한 용도로 사용할 수 있는데
열을 한꺼번에 지정할 때는 Columns를 사용하면 된다.
Sub Button_Click()
Columns(1) = 1
End Sub
Columns(1) 에서 1은 1번째 열
즉, A 열을 의미한다.
위 코드는 A 열을 1로 채우라는 거다.
Range("A:A") = 1 과 같다.
실행 결과 A1부터 A1048576까지 1로 가득 채워졌다.
Columns 뒤 괄호 안의 숫자를 바꿔보자.
Sub Button_Click()
Columns(3) = 7
End Sub
Columns(3) 에서 3은 3번째 열
즉, C 열을 의미한다.
위 코드는 C열을 7로 채우라는 거다.
실행 결과 C1부터 C1048576까지 7로 가득 채워졌다.
다음과 같이 숫자 대신 열에 해당하는 문자를 사용해도 된다.
Sub Button_Click()
Columns("A") = 2
End Sub
Columns(1) 대신 Columns("A") 를 사용했다.
위 코드는 A열을 2로 채우라는 거다.
Columns("a") 라고 해도 된다. 대소문자를 가리지 않는다.
실행 결과 A1부터 A1048576까지 2로 가득 채워졌다.
2개 이상의 연속된 열을 지정하는 방법도 있다.
Sub Button_Click()
Columns("A:B") = 3
End Sub
위 코드는 A열부터 B열까지 모두 3으로 채우라는 거다.
실행 결과 A1부터 B1048576까지 3으로 가득 채워졌다.
Columns("A:B") 대신 간단하게 [A:B] 를 사용해도 된다.
Sub Button_Click()
[A:B].Value = 1
End Sub
실행 결과 A1부터 B1048576까지 1로 가득 채워졌다.
이 방법은 연속된 2개의 열 이상일 경우 사용하는 것이 좋으며
열 하나만 지정할 경우에는 [A:A] 처럼 같은 열문자를 입력해야 한다.
Columns("A:B") 대신 간단하게 [A:B] 를 써도 되니까
Columns("A") 대신 [A] 라고 써도 되나?
안된다.
Rows
행을 한꺼번에 지정할 때는 Rows를 사용하면 된다.
사용방법은 Columns와 비슷하다.
다만, Columns는 Columns(1) 이나 Columns("A") 처럼
숫자를 입력해도 되고, 문자를 입력해도 되는데
Rows는 Row(1) 처럼 숫자만 입력해야 된다.
Rows("A") 라고 하면 실행 시 에러창이 나타난다.
Sub Button_Click()
Rows(6) = 1
End Sub
위 코드는 6번째 행을 1로 가득 채우라는 거다.
실행 결과 A6부터 XFD6까지 1로 가득 채워졌다.
그런데, 행번호에 " " 붙여도 문제없이 실행된다.
Sub Button_Click()
Rows("6") = 1
End Sub
만약 다음과 같이 코드를 입력하고 실행하면
Sub Button_Click()
Rows("A") = 1
End Sub
에러창이 나타난다.
2개 이상의 연속된 행을 지정하는 방법도 있다.
Sub Button_Click()
Rows("6:7") = 1
End Sub
위 코드는 6번째 행부터 7번째 행까지 모두 1로 채우라는 거다.
실행 결과는 다음과 같다.
Rows(6) 도 되고, Rows("6") 도 되니까
Rows("6:7") 대신 Rows(6:7) 도 되겠네...?
... 는 아니고, 애초에 입력이 안된다.
Rows("6:7") 대신 간단하게 [6:7] 을 사용해도 된다.
Sub Button_Click()
[6:7] = 1
End Sub
그런데 [6] = 1 이라고 하면 안된다.
특정 범위에서 Columns나 Rows 사용
위에서 설명한 방법은 시트 내의 열, 행을 모두 다 지정하는 건데
특정 범위 내에서 열이나 행을 지정할 수도 있다.
Sub Button_Click()
Range("B1:D3").Columns(2) = 11
End Sub
위 코드는 B1 부터 D3 까지의 범위에서 2번째 열을 11로 채우라는 거다.
이 범위에서 2번째 열 문자는 C다. (B, C, D 중 2번째는 C)
실행하면 다음과 같은 결과가 나온다.
Range("B1:D3") 범위를 지정했고
B열에서 D열까지 열은 3개니까
Columns( ) 의 괄호 안에 들어가는 숫자는
1에서 3 사이의 숫자가 되어야 할 것 같지만
0을 넣어도 되고
Sub Button_Click()
Range("B1:D3").Columns(0) = 11
End Sub
3보다 큰 숫자를 넣어도 되고
Sub Button_Click()
Range("B1:D3").Columns(7) = 11
End Sub
음수를 넣어도 된다.
Sub Button_Click()
Range("C1:D3").Columns(-1) = 11
End Sub
즉, Range로 범위를 정하면, 범위의 가장 왼쪽 열이 1이 되는 거고
그보다 왼쪽 열은 0, 하나 더 왼쪽 열은 -1, ... 가 되는 거다.
그런데 위 코드에서 Range("C1:D3").Columns(-2) 를 입력했으면 에러가 날거다.
A열보다 왼쪽에 있는 열은 없기 때문이다.
Rows를 사용할 수도 있다.
Sub Button_Click()
Range("C2:D4").Rows(1) = 22
End Sub
위 코드는 C2 부터 D4 까지의 범위에서 1번째 열을 22로 채우라는 거다.
이 범위에서 1번째 열 문자는 C다. (C, D 중 1번째는 C)
실행하면 다음과 같은 결과가 나온다.
Range("C2:D4") 범위를 지정했고
2행에서 4행까지 행은 3개니까
Rows( ) 의 괄호 안에 들어가는 숫자는
1에서 3 사이의 숫자가 되어야 할 것 같지만
Columns와 마찬가지로 3보다 큰 숫자를 써도 되고
Sub Button_Click()
Range("C2:D4").Rows(4) = 22
End Sub
0을 써도 되고
Sub Button_Click()
Range("C2:D4").Rows(0) = 22
End Sub
음수를 써도 된다.
Sub Button_Click()
Range("C4:D5").Rows(-2) = 33
End Sub
'Excel VBA 기초' 카테고리의 다른 글
Excel VBA - 변수 (1) (0) | 2023.11.30 |
---|---|
Excel VBA - Cell 값을 다른 Cell에 복사하기 (0) | 2023.11.26 |
Excel VBA - 다중 Cell 범위 지정하기 (0) | 2023.11.19 |
Excel VBA - 단일 Cell 지정하기 (0) | 2023.11.19 |
Excel VBA - 실행버튼 만들기 (0) | 2023.11.18 |