엑셀 VBA에서 Cells와 Range를 사용하여 셀 값을 가져오거나 입력하는 방법


엑셀 VBA에서 셀 데이터, 즉 셀 값을 가져와서 처리하는 것은 VBA 로직에서 가장 기본적인 작업이면서 수없이 반복되는 작업 중에 하나 입니다.

가져온 셀 값에 의해 다음 작업의 흐름이 바뀔 수도 있고, 다른 셀의 값 계산에 사용되기도 합니다.

엑셀 VBA에서 셀 데이터를 가져오는 방법은 무척 간단합니다.
Cells 또는 Range를 사용해서 시트의 셀 데이터를 가져올 수 있습니다.

셀 데이터를 가져올 뿐만 아니라 Cells 또는 Range를 사용해서 셀에 데이터를 입력할 수도 있습니다.

이번 글에서는 엑셀 VBA에서 Cells와 Range를 사용하여 셀 값을 가져오거나 입력하는 방법에 대해 알아보겠습니다.

엑셀 VBA에서 Cells 및 Range를 사용하여 셀 값을 가져오거나 입력하는 로직 구현

1. 제일 먼저 엑셀 VBA를 만들어 보도록 하겠습니다.

2. 상단 [개발 도구] 탭 메뉴를 선택하고 코드 항목에서 [Visual Basic]을 클릭해서 VBA 화면을 엽니다.

3. VBA 프로그램이 작성될 새로운 모듈을 만들기 위해 [삽입] 메뉴에서 [모듈]을 선택합니다.
그럼 VBA 프로그램을 작성할 편집 화면이 나타나게 됩니다.

엑셀 VBA에서 Cells와 Range를 사용하여 셀 값을 가져오거나 입력하는 방법 - VBA 열기


▼ 아래 화면은 Cells와 Range를 사용하여 셀 데이터를 가져오거나 입력하는 VBA 코딩 소스입니다.

  • Sub 셀_데이터_가져오기()“는 엑셀에서 사용할 매크로 이름이 됩니다.
엑셀 VBA에서 Cells와 Range를 사용하여 셀 값을 가져오거나 입력하는 방법 - VBA 소스


▼ 아래 화면은 만들어진 예제 VBA 프로그램을 실행했을 때의 결과 화면입니다.

엑셀 VBA에서 Cells와 Range를 사용하여 셀 값을 가져오거나 입력하는 방법 - VBA 실행 결과

Cells 사용 예제에 대한 상세 설명

Cells는 하나의 셀을 선택할 때 사용되며 사용 형식은 Cells(행, 열) 형식입니다.
“행”과 “열”은 해당 행,열의 위치 번호를 의미합니다.

Cells(2, 4) = Cells(2, 1)
2행, 4열에 위치한 셀에 2행, 1열의 셀 값을 넣겠다는 의미 입니다. 즉 D2에 A2의 셀 데이터가 들어가게 됩니다.

Cells(3, 4).Value = Cells(3, 1).Value
Value를 사용하여 셀 값을 가져오거나 넣을 수 있습니다. D3에 A3의 셀 데이터가 들어가게 됩니다.

Worksheets(“Sheet2”).Cells(4, 4).Value = Worksheets(“Sheet2”).Cells(4, 1)
워크시트를 지정해서 해당 워크시트의 셀에서 값을 가져오거가 넣을 수가 있습니다. “Sheet2″의 D4에 “Sheet2″의 A4 셀 데이터가 들어가게 됩니다.

Cells(5, “D”) = Cells(5, “A”)
열의 번호 대신 열의 기호를 사용할 수 있습니다. D5에 A5의 셀 데이터가 들어가게 됩니다.

※ Cells는 아래 소스와 같이 반복문에서 사용할 때 더욱 효과적인 셀 처리가 가능합니다.
For i = 1 To 10
    Worksheets(“Sheet1”).Cells(i, 1).Value = Worksheets(“Sheet2”).Cells(1, i)
Next

Range 사용 예제에 대한 상세 설명

Range는 범위를 지정하여 셀을 선택할 때 사용합니다. 엑셀 시트에서 사용하는 셀 인자를 그대로 사용합니다.
(예: A1, D10, A3:A10 …)

Range(“D6”) = Range(“A6”).Value
Range(“D6”, “D6”) = Range(“A6”, “A6”)
Cells와 같은 동작이 이루어 집니다. 단일 셀의 데이터를 가져오고 넣게 됩니다. “A6” 셀의 데이터를 “D6” 셀에 넣습니다.

Range(“D7:D8”) = Range(“A7:A8”).Value
A7부터 A8까지 셀 데이터를 가져와서 D7부터 D8까지 셀에 넣습니다.

Range(“D9”, “D10”) = Range(“A9”, “A10”).Value
A9부터 A10까지 셀 데이터를 가져와서 D9부터 D10까지 셀에 넣습니다.

Range(“E6,E8”) = Range(“A6,A8”).Value
위의 실행 결과 화면의 E열을 보면 알 수 있겠지만 E6과 E8 셀에 A6의 셀 데이터가 들어가 있습니다.
쉼표(,)로 나뉘어지면 각각의 셀을 의미합니다.

※ Range에서 주로 사용하는 형식은 하나의 셀을 선택하는 Range(“A1”) 이거나 범위를 지정하는 Range(“A1:B10”) 형식입니다.
※ 셀 값을 가져오는 Value는 생략가능 합니다. 하지만 엑셀 버전에 따라 반드시 Value를 붙여야 하는 경우도 있습니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기