VBA 에서 셀에 접근하는 방법은 여러가지가 있습니다. 셀을 다루는 가장 기본적이고 자주 사용하는 방법이기 때문에 반드시 기억해 두는 것이 좋습니다. 오늘 소개할 방법은 총 5가지입니다. 셀에서 값을 가져온 후 다른 셀에 값을 입력하는 샘플을 만들어 보겠습니다.
◎ 1. Range 개체를 사용해서 접근하는 방법 |
▼ 첫번째는 Range 함수입니다. 매개변수로 행과 열 번호를 합친 주소를 입력하면 셀에 포함된 값을 반환합니다. 만약 Range("A1:B2") 과 같이 영역을 지정하면 Range 영역 개체를 반환합니다.
Sub rangeValue()
With Worksheets("Sheet1")
.Range("C3").Value = .Range("B3").Value
MsgBox .Range("B3").Value
End With
End Sub
▼ 함수를 실행한 결과는 다음과 같습니다. B3 의 셀 값을 가져와서 C3 셀에 붙여 넣었습니다.
◎ 2. Cells 함수의 인덱스 번호로 셀 참조하는 방법 |
▼ 두 번째는 Cells 함수를 이용하는 방법입니다. Cells 함수는 두 개의 매개변수가 가집니다. 첫 번째 매개변수는 행의 숫자입니다. 두 번째는 열의 숫자를 나타냅니다. A 부터 1 입니다.
Sub cellsValue()
With Worksheets("Sheet1")
.Cells(3, 3).Value = .Cells(3, 2).Value
MsgBox .Cells(3, 2).Value
End With
End Sub
Range 개체에 포함된 Cells 함수도 있습니다. Cells 함수는 해당 Range 개체가 지정한 셀에서 상대적인 위치를 가리킵니다. Range 개체를 기준으로 좌/우, 위/아래 로 이동해서 해당 셀의 값을 가져옵니다. Worksheets("Sheet1").Cells(3, 2).Value 는 Range(“A1”).Cells(3, 2).Value 와 같습니다.
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법 ▶ 엑셀 VBA 개발할 때 로그 출력하는 방법 ▶ 엑셀 VBA IF 지시 구문 사용하는 방법, IF … ELSEIF … ELSE … ENDIF ▶ 엑셀 VBA 매크로 소스 주석 Comments 넣는 방법 ▶ 엑셀 VBA 이항 논리 연산자와 단항 논리 연산자 Not 사용하기 |
◎ 3. Offset 함수로 상대위치를 계산해서 셀 참조하는 방법 |
▼ 세 번째는 Offset 함수입니다. Offset 도 Range 개체의 Cells 과 마찬가지로 해당 개체의 상대적인 위치를 나타냅니다. Range 에서 사용한 Offset 는 Range 위치를 기준으로 매개변수에 입력한 값만큼 좌/우, 위/아래로 이동한 뒤 해당 셀에서 값을 가져옵니다. Range 의 Cells 와 달리 Offset 는 기준인 Range 개체의 위치가 0, 0 입니다. 그러니까 Offset(2, 1) 이면 아래로 2칸, 오른쪽으로 1칸 이동하라는 뜻입니다.
Sub officeValue()
With Worksheets("Sheet1").Range("A1")
.Offset(2, 2).Value = .Offset(2, 1).Value
MsgBox .Offset(2, 1).Value
End With
End Sub
◎ 4. 바로가기 표기법으로 셀 참조하는 방법 |
▼ 네 번째는 바로가기 표기법입니다. 표기법만 다를 뿐 Range 에 셀 주소를 입력하는 방식과 같습니다.
Sub directValue()
With Worksheets("Sheet1")
.[C3].Value = .[B3].Value
MsgBox .[B3].Value
End With
End Sub
◎ 5. 행 및 열로 셀 참조하는 방법 |
▼ 다섯번 째는 Rows 함수와 Columns 함수로 행과 열 값을 지정하는 방식입니다. Rows 값으로 행의 위치를 지정하고 지정한 행에서 다시 Columns 함수로 열을 지정합니다. Rows(6).Columns(1).Value 는 6번째 행에서 1번째 A열의 값을 나타내는 것입니다.
Sub columnsValue()
With Worksheets("Sheet1")
.Rows(3).Columns(3).Value = .Rows(3).Columns(2).Value
MsgBox .Rows(3).Columns(2).Value
End With
End Sub
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법 ▶ 엑셀 VBA 개발할 때 로그 출력하는 방법 ▶ 엑셀 VBA IF 지시 구문 사용하는 방법, IF … ELSEIF … ELSE … ENDIF ▶ 엑셀 VBA 매크로 소스 주석 Comments 넣는 방법 ▶ 엑셀 VBA 이항 논리 연산자와 단항 논리 연산자 Not 사용하기 |
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 행 열 숨기기와 보이기 구현 (0) | 2024.02.11 |
---|---|
엑셀 VBA 시트에 있는 내용을 파일, 텍스트로 출력하기 (2) | 2024.01.28 |
엑셀 VBA - Value, Formula, FormulaR1C1, Text 속성으로 값 입력 및 읽기 (1) | 2024.01.24 |
엑셀 VBA 사용자가 선택한 영역 값, 셀 주소 정보 알아 내는 방법 (2) | 2024.01.21 |
엑셀 VBA 이항 논리 연산자 And, Or, Xor 와 단항 논리 연산자 Not 사용하기 (1) | 2024.01.03 |
엑셀 VBA 함수 CStr 데이터를 문자열로 변환하기 (1) | 2024.01.02 |
엑셀 VBA 날짜 여부 확인 함수 IsDate 사용하기 (1) | 2024.01.02 |
엑셀 VBA 문자열 자르기, LEFT RIGHT 함수를 이용해 문자열 추출하는 방법 (0) | 2023.12.23 |