Excel VBA 범위 객체

⚡ 스마트 요약

Excel VBA의 범위 개체는 워크시트의 단일 셀 또는 셀 그룹을 나타냅니다. 이 페이지에서는 개체 계층 구조, 범위 및 셀 속성, 셀 선택 및 참조, 값 읽기 및 쓰기, 오프셋 속성에 대해 설명합니다.

  • 🎯 정의: 범위 객체는 단일 셀, 행, 열, 선택 영역 또는 3차원 범위를 가리킵니다.
  • 🧬 계층: 자격을 갖춘 참조자는 애플리케이션, 통합 문서, 워크시트, 범위 순으로 읽습니다.
  • 🏷️ 속성 및 방법: 속성은 객체에 대한 정보를 저장하고, 메서드는 선택이나 병합과 같은 작업을 수행합니다.
  • 🔢 세포 속성: Cells(Row, Column)는 셀 번호를 사용하여 셀을 지정하므로 프로그래밍 반복에 적합합니다.
  • ✍ 읽기 및 쓰기: Value 속성은 셀의 내용을 가져오고 새로운 내용을 다시 쓰는 두 가지 기능을 모두 수행합니다.
  • ↔️ 오프셋 속성: 오프셋은 참조 대상을 시작 셀에서 지정된 행과 열 수만큼 이동합니다.

Excel VBA 범위 객체

VBA 범위란 무엇입니까?

VBA 범위 개체는 Excel 워크시트의 셀 하나 또는 여러 셀을 나타냅니다. Excel VBA의 가장 중요한 개체입니다. Excel VBA 범위 개체를 사용하면 다음을 참조할 수 있습니다.

  • 단일 셀
  • 셀의 행 또는 열
  • 셀 선택
  • 3차원 범위

이전 튜토리얼에서 설명했듯이 VBA는 로그를 기록하고 실행하는 데 사용됩니다. 매크로하지만 VBA는 시트에서 어떤 데이터를 수정해야 하는지 어떻게 알아낼까요? 바로 이 부분에서 VBA 범위 개체가 유용하게 사용됩니다.

VBA에서 개체 참조 소개

Excel의 VBA 범위 개체 및 개체 한정자를 참조합니다.

  • 객체 한정자: 객체를 참조하는데 사용됩니다. 참조하는 통합 문서 또는 워크시트를 지정합니다.

이러한 셀 값을 조작하려면 등록 행동 양식 사용됩니다.

  • 재산: 속성은 개체에 대한 정보를 저장합니다.
  • 방법 : 메소드는 수행할 객체의 작업입니다. 범위 개체는 선택, 복사, 지우기, 정렬 등과 ​​같은 작업을 수행할 수 있습니다.

VBA는 Excel의 개체를 참조할 때 개체 계층 구조 패턴을 따릅니다. 아래 구조를 따라야 합니다. 여기서 점(.dot)은 각 계층의 개체를 연결합니다.

응용 프로그램.워크북.워크시트.범위

해당 계층 구조는 두 가지 속성을 통해 접근할 수 있으며, 그중에서 Range 속성이 가장 자주 사용됩니다.

Range 속성을 사용하여 Excel VBA Range 개체를 참조하는 방법

범위 속성은 두 가지 유형의 개체에 적용될 수 있습니다.

  • 워크시트 개체
  • 범위 객체

범위 속성의 구문

  1. 키워드 "범위"
  2. 키워드 뒤에 오는 괄호
  3. 관련 셀 범위
  4. 인용 (" ")
Application.Workbooks("Book1.xlsm").Worksheets("Sheet1").Range("A1")

위와 같이 Range 객체를 참조하면 다음과 같이 참조됩니다. 완전한 참조엑셀에 원하는 범위, 시트, 워크시트를 정확하게 알려주셨습니다.

예시: 메시지Box 워크시트(“Sheet1”).범위(“A1”).값

Range 속성을 사용하면 다음과 같은 많은 작업을 수행할 수 있습니다.

  • 범위 속성을 사용한 단일 셀 참조
  • Worksheet.Range 속성을 사용하여 단일 셀 참조
  • 전체 행 또는 열 참조
  • Worksheet.Range 속성 등을 사용하여 병합된 셀 참조

따라서 범위 속성에 대한 모든 시나리오를 다루기에는 너무 길어집니다. 위에 언급된 시나리오의 경우 하나만 예를 보여 드리겠습니다. 범위 속성을 사용하는 단일 셀을 참조하세요.

Worksheet.Range 속성을 사용하여 단일 셀 참조

특정 셀을 참조하려면 해당 셀의 주소를 Range 속성에 텍스트 문자열로 전달합니다.

구문은 간단합니다 “범위(“셀”)”.

여기서는 ".Select" 명령을 사용하여 시트에서 단일 셀을 선택합니다.

단계 1) 이 단계에서는 엑셀을 엽니다.

Worksheet.Range 속성을 사용하는 단일 셀

단계 2) 이 단계에서,

  • 를 클릭하십시오 Worksheet.Range 속성을 사용하는 단일 셀 버튼을 클릭합니다.
  • 창이 열립니다.
  • 여기에 프로그램 이름을 입력하고 '확인' 버튼을 클릭하세요.
  • 기본 Excel 파일로 이동합니다. 상단 메뉴에서 '기록 중지' 버튼을 클릭하면 매크로 기록이 중지됩니다.

Worksheet.Range 속성을 사용하는 단일 셀

단계 3) 다음 단계에서는

  • 매크로 버튼을 클릭하세요 Worksheet.Range 속성을 사용하는 단일 셀 상단 메뉴에서 아래 창이 열립니다.
  • 이 창에서 '수정' 버튼을 클릭하세요.

Worksheet.Range 속성을 사용하는 단일 셀

단계 4) 위 단계를 따르면 "Single Cell Range"라는 파일의 VBA 코드 편집기가 열립니다. 아래와 같이 코드를 입력하여 Excel 시트에서 "A1" 범위를 선택하세요.

Sub SingleCellRange()
    Range("A1").Select
End Sub

Worksheet.Range 속성을 사용하는 단일 셀

단계 5) 이제 파일을 저장합니다 Worksheet.Range 속성을 사용하는 단일 셀 그리고 아래와 같이 프로그램을 실행해 보세요.

Worksheet.Range 속성을 사용하는 단일 셀

단계 6) 프로그램 실행 후 셀 "A1"이 선택되는 것을 볼 수 있습니다.

Worksheet.Range 속성을 사용하는 단일 셀

마찬가지로 특정 이름을 가진 셀을 선택할 수도 있습니다. 예를 들어, "라는 이름을 가진 셀을 검색하려면 다음과 같이 하면 됩니다.Guru99 - VBA 튜토리얼". 아래와 같이 명령어를 실행해야 합니다. 그러면 해당 이름의 셀이 선택됩니다.

범위("Guru99- VBA 튜토리얼”).선택

여기에 다른 범위 개체를 적용하는 코드 샘플이 있습니다.

Excel에서 셀을 선택하는 범위 범위 선언
단일 행의 경우 범위(“1:1”)
단일 열의 경우 범위(“A:A”)
연속 셀의 경우 범위(“A1:C5”)
비연속 셀의 경우 범위(“A1:C5, F1:F5”)
두 범위의 교차점 범위(“A1:C5 F1:F5”)
(교차 셀의 경우 쉼표 연산자가 없다는 점을 기억하세요)
셀을 병합하려면 범위(“A1:C5”)
(셀을 병합하려면 "병합" 명령을 사용하십시오)

셀을 선택하는 것은 단지 첫 번째 단계일 뿐입니다. 실제로 매크로는 셀에 저장된 값을 읽고 새로운 값을 다시 저장합니다.

Range 객체를 사용하여 값을 읽고 쓰는 방법

워크시트를 건드리는 거의 모든 매크로는 다음 두 가지 작업 중 하나를 수행합니다. 셀에서 값을 읽거나 셀에 값을 쓰는 것입니다. 두 작업 모두 Value 속성을 사용하며, 셀을 먼저 선택할 필요가 없습니다.

Sub ReadAndWrite()
    Dim Price As Double
    Dim Qty As Long

    ' Read two values out of the sheet
    Price = Range("B1").Value
    Qty = Range("B2").Value

    ' Write the calculated result back
    Range("B3").Value = Price * Qty

    ' Fill a whole block in one statement
    Range("D1:D10").Value = "Guru99"

    ' Clear only the contents, keeping the formatting
    Range("F1:F10").ClearContents
End Sub

이 패턴이 신뢰할 만한 이유는 네 가지 요인 때문입니다.

  • 선택은 필수 사항이 아닙니다. 쓰기 Range(“B3”).Value = 10 먼저 셀을 선택하는 것보다 더 빠르고 안전합니다. 기록된 매크로에 .Select가 많이 사용되는 이유는 코드 자체에 필요한 것이 아니라, 기록 프로그램이 마우스 동작을 그대로 따라하기 때문입니다.
  • 값 vs. 텍스트: `.Value`는 기본 데이터를 반환하고, `.Text`는 화면에 표시되는 서식이 지정된 문자열을 반환합니다. 이 문자열은 열 너비에 따라 잘릴 수 있습니다. 계산에서는 `.Value`를 읽어야 합니다.
  • 한 줄에 전체 블록이 있는 경우: 여러 셀로 구성된 범위에 값을 할당하면 모든 셀이 한 번에 채워지므로, 셀을 하나씩 채우는 것보다 훨씬 빠릅니다.ping.
  • 올바른 것을 명확히 하세요: ClearContents는 값만 제거하고, Clear는 서식도 제거하며, Delete는 셀을 삭제하고 주변 셀을 이동시킵니다.

범위 속성은 셀을 문자와 숫자로 지정합니다. 두 번째 속성은 동일한 셀을 두 개의 숫자로 지정합니다.

셀 속성

범위와 마찬가지로, VBA "셀 속성"을 사용할 수도 있습니다. 유일한 차이점은 스프레드시트의 셀을 참조하는 데 사용하는 "항목" 속성이 있다는 것입니다. 셀 속성은 프로그래밍 반복문에서 유용합니다.

예를 들어,

Cells.item(Row, Column). 아래 두 줄 모두 A1 셀을 참조합니다.

  • Cells.item(1,1) 또는
  • Cells.item(1,”A”)

VBA에서 범위와 셀의 차이점

Range와 Cells는 서로 다른 경로를 통해 동일한 워크시트 셀에 접근하며, 올바르게 선택하면 코드가 더 간결해지고 읽기 쉬워집니다.

차이점 범위 셀
주소 형식 텍스트 문자열, Range(“A1”) 두 개의 숫자, 셀(1, 1)
여러 개의 셀 예, 범위(“A1:C5”) 한 번에 한 세포씩
루프 내부 문자열 연결이 필요합니다 행 번호는 반복 횟수 카운터가 될 수 있습니다.
가독성 엑셀에서 보이는 주소와 일치합니다. 27번 열은 AA보다 상상하기가 더 어렵습니다.
복합사용 Range(Cells(1, 1), Cells(5, 3))는 숫자로부터 A1:C5 범위를 생성합니다.

실용적인 규칙은 한눈에 알아볼 수 있는 고정된 주소에는 Range를 사용하고, 실행 중에 행 또는 열 번호를 계산해야 하는 경우에는 Cells를 사용하는 것입니다.

범위 오프셋 속성

범위 오프셋 속성은 원래 위치에서 떨어진 행/열을 선택합니다. 선언된 범위를 기준으로 셀이 선택됩니다. 아래 예를 참조하세요.

예를 들어,

Range("A1").Offset(RowOffset:=1, ColumnOffset:=1).Select

이 작업의 결과는 B2 셀이 됩니다. 오프셋 속성을 사용하면 A1 셀이 한 열, 한 행만큼 이동합니다. 필요에 따라 RowOffset/ColumnOffset 값을 변경할 수 있습니다. 음수 값(-1)을 사용하면 셀을 뒤로 이동할 수 있습니다.

위 코드가 포함된 Excel을 다운로드하세요.

위의 엑셀 파일을 다운로드하세요. Code

자주 묻는 질문

Cells(Rows.Count, 1).End(xlUp).Row를 사용하세요. 이 방법은 A열의 맨 아래에서 시작하여 데이터가 있는 마지막 셀로 이동하므로 행이 삭제된 후에는 UsedRange보다 더 안정적입니다.

모든 읽기/쓰기 작업은 VBA와 Excel 사이에서 이루어집니다. 범위를 단일 할당으로 배열에 로드하고, 메모리에서 배열을 처리한 다음, 단일 명령문으로 다시 쓰는 것이 좋습니다. 화면 업데이트 기능을 끄는 것도 도움이 됩니다.

일반적으로 주소가 잘못되었거나, 시트 이름이 존재하지 않거나, 활성화되지 않은 워크시트에서 범위를 선택하려고 시도했을 때 발생합니다. 참조에 시트 이름을 명시하거나 시트를 먼저 활성화하십시오.

예. 녹음된 코드를 붙여넣으면 AI 도우미가 각 선택(Select) 및 선택(Selection) 쌍을 직접적이고 완전한 범위 참조로 대체합니다. 사본에서 두 버전을 모두 실행하고 시트를 비교한 후 보관하십시오.ping 변화.

예. 데이터 시트의 A열부터 D열까지 모든 채워진 행과 같이 목표를 설명하면 AI 도우미가 일치하는 범위 표현식을 반환합니다. 실제 데이터에 적용하기 전에 소량의 샘플 데이터로 검증해 보세요.

이 게시물을 요약하면 다음과 같습니다.