(984) Range("A1") = Range("C3").Address(1, 1, 1, 1, Range("F5")) 의 뜻 (VBA 매크로)Code 분석/ 엑셀,매크로,VBA
2012/02/27 01:40
http://rosa0189.blog.me/60156625548
Range("A14") = Range("C3").Address(1, 1, 1, 1, Range("F5")) 에서 앞의 Range("A14") = Range("C3") 부분은 너무 쉬우므로 오늘은 뒷부분의 Address(1, 1, 1, 1, Range("F5"))에 대해서 알아보자.
Range("A1") = Range("C3").Address(1, 1, 1, 1, Range("F5"))는 생략형 표기이며,
Range("A1") = Range("C3").Address(True, True, xlA1, True, Range("F5")) 또는
Range("A1") = Range("C3").Address(Rowabsolute:=True, Columnabsolute:=True, _
ReferenceStyle:=xlA1, External:=True, Relativeto:=Range("F5")) 와 같이 표시할 수 있다.
Address 속성(property)의 각 옵션 즉 인수(argument)에 대해 알아보자.
- Address(1, 1, 1, 1, Range("F5") : VBA에서 True = 1, False = 0 과 같다.
Rowabsolute:=True 즉 Rowabsolute:= 1 로 설정 시 행주소를 절대주소 표기방식으로 표시하라는 의미이다. 반대로 Rowabsolute:= False 또는 Rowabsolute:= 0 으로 설정 시 행주소를 상대주소 표기방식으로 표시하라는 의미이다.
- Address(1, 1, 1, 1, Range("F5")) : Columnabsolute:=True 즉 Columnabsolute:= 1 로 설정 시 열주소를 절대주소 표기방식으로 표시하라는 의미이다. 반대로 Columnabsolute:= False 또는 Columnabsolute:= 0 으로 설정 시 열주소를 상대주소 표기방식으로 표시하라는 의미이다.
- Address(1, 1, 1, 1, Range("F5")) : ReferenceStyle:=xlA1 는 ReferenceStyle:= 1 과 동일하다. 즉 주소를 A1방식으로 표시하라는 의미이다. 반대로 ReferenceStyle:=xlR1C1 은
ReferenceStyle:= 0 과 동일하다. 즉 주소를 R1C1방식으로 표시하라는 의미이다.
- Address(1, 1, 1, 1, Range("F5")) : External:=True 또는 External:= 1 로 설정 시 외부주소 + 셀주소 즉, [address.xlsm]Sheet1!$C$3 와 같은 방식으로 주소를 표시하라는 의미이다. 반대로 External:=False 또는 External:= 0 으로 설정 시 $C$3과 같이 외부주소 없이 셀의 주소만으로 표시하라는 의미이다.
- Address(1, 1, 1, 1, Range("F5")) : 예제에서는 Range("F5")으로 하였지만 어느 셀이 와도 상관없다. Range("C3").Address(1, 1, 1, 1, Range("F5")) 라고 하였을 경우 C3셀을 F5셀의 상대주소로 표기하라는 의미이다. 이 옵션은 행/열이 상대주소로, R1C1주소일 때에 적용된다.
위의 설명을 참조하여, 왼쪽 코드를 실행 시 각 셀에 나타나는 실행 결과를 확인.
실행 코드 A열 각 셀에 입력되는 결과값
Range("A1") = Range("C3").Address(1, 1) $C$3
Range("A2") = Range("C3").Address(1, 0) C$3
Range("A3") = Range("C3").Address(0, 1) $C3
Range("A4") = Range("C3").Address(0, 0) C3
Range("A6") = Range("C3").Address(1, 1, 1) $C$3
Range("A7") = Range("C3").Address(1, 1, 0) R3C3
Range("A9") = Range("C3").Address(1, 1, 1, 1) [Addr.xlsm]Sheet1!$C$3
Range("A10") = Range("C3").Address(1, 1, 1, 0) $C$3
Range("A11") = Range("C3").Address(1, 1, 0, 1) [Addr.xlsm]Sheet1!R3C3
Range("A12") = Range("C3").Address(1, 1, 0, 0) R3C3
Range("A14") = Range("C3").Address(0, 0, 0, 1, Range("F5")) [Addr.xlsm]Sheet1!R[-2]C[-3]
Range("A15") = Range("C3").Address(0, 0, 0, 0, Range("F5")) R[-2]C[-3]
Range("A16") = Range("C3").Address(1, 1, 1, 1, Range("F5")) [Addr.xlsm]Sheet1!$C$3
'메모' 카테고리의 다른 글
생명이 소중한 이유? (0) | 2013.07.01 |
---|---|
굴삭기 중고가격...펌 (0) | 2013.06.30 |
dicom modality...펌 (0) | 2013.06.27 |
[스크랩] [액세스 VBA] 폼을 나갈 때 레코드 변경 값을 저장할지 묻는 사용자 확인창 출력하기 (0) | 2013.06.25 |
inetpub폴더...펌 (0) | 2013.06.22 |