엑셀 VBA 셀 참조하는 여러가지 방법

엑셀(Excel)/VBA

엑셀 VBA 셀 참조하는 여러가지 방법

 

환경: Microsoft Excel 2010

 

VBA 에서 셀을 접근하는 방법은 자주 사용하기 때문에 반드시 익혀야 합니다. 총 5가지로 나눌 수 있는데, 각 개체별로 예제를 통해서 접근 방식을 설명하겠습니다. 예제는 A 열에 있는 데이터를 가져와서 바로 옆에 있는 B 열에 복사합니다. 여러 방식 중에 소스 상황과 개인의 코딩 스타일에 맞게 골라서 사용하시기 바랍니다. 

 

1. Range 개체를 사용해서 접근하는 방법

 

▼ 첫번째 예제에서는 Range 함수를 사용합니다. 인수로 셀 주소를 입력하면 포함하고 있는 값을 리턴합니다. 만약 Range("A1:B2") 과 같이 영역을 지정하면 Range 영역 개체를 리턴합니다. 

 

With Worksheets("Sheet1")

    .Range("B2").Value = .Range("A2").Value

End With

엑셀 VBA 셀 참조하는 여러가지 방법

 

2. Cells 함수의 인덱스 번호로 셀 참조하는 방법

 

▼ 두 번째 방법은 Cells 함수를 이용하는 것입니다. Cells 함수는 개체에 포함되어 있는 함수로 해당 개체에서 상대적인 위치를 나타냅니다. Range 개체에서 Cells 함수를 사용하면 Range 개체를 기준으로 좌/, /아래 로 이동해서 해당 셀의 값을 가져옵니다. Range(“A1”).Cells(3, 2).Value 는 다음과 같이 표현할 수도 있습니다.

 

l  Range(“A1”).Item(3, 2)

l  Range(“A1”).Cells(3, 2)

l  Range(“A1”) (3, 2)

 

▼ 아래 샘플 소스는 워크시트에서 3번째 행과 1번째 열인 A 열값을 2번째 B 열에 넣으라는 소스 입니다.

 

With Worksheets("Sheet1")

    .Cells(3, 2).Value = .Cells(3, 1).Value

End With

 

엑셀 VBA 셀 참조하는 여러가지 방법

 

3. Offset 함수로 상대위치를 계산해서 셀 참조하는 방법

 

▼ 세 번째는 Offset 함수 입니다. Offset Cells 과 마찬가지로 해당 개체의 상대적인 위치를 나타냅니다. Range 에서 사용한 Offset Range 위치를 기준으로 입력한 인수 값만큼 이동합니다. 

 

With Worksheets("Sheet1").Range("A1")

    .Offset(3, 1).Value = .Offset(3, 0).Value

End With

엑셀 VBA 셀 참조하는 여러가지 방법

 

4. 바로가기 표기법으로 셀 참조하는 방법

 

▼ 네 번째는 바로가기 표기법입니다. 표기법만 다를 뿐 Range 에 셀 주소를 넘기는 방식과 동일합니다. 아래 샘플은 A5 에 있는 값을 B5 로 복사하는 소스입니다.

 

With Worksheets("Sheet1")

    .[B5].Value = .[A5].Value

End With

엑셀 VBA 셀 참조하는 여러가지 방법

 

5. 행 및 열로 셀 참조하는 방법

 

▼ 다섯 번째는 Rows 함수와 Columns 함수로 행과 열 값을 지정하는 것입니다. Rows 값으로 행의 위치를 지정하고 지정한 행에서 다시 Columns 함수로 열을 지정하는 것입니다. Rows(6).Columns(1).Value 6번째 행에서 1번째 A열의 값을 나타내는 것입니다.

 

With Worksheets("Sheet1")

    .Rows(6).Columns(2).Value = .Rows(6).Columns(1).Value

End With

엑셀 VBA 셀 참조하는 여러가지 방법

Posted by 녹두장군