VBA – Activecell Offset

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 4월 15, 2023

이 자습서에서는 VBA에서 Activecell Offset을 사용하는 방법을 보여줍니다.

ActiveCell 은 워크시트에서 활성 셀의 셀 주소를 나타내는 VBA의 속성입니다. 커서가 A1 셀에 위치한 경우 VBA의 ActiveCell 속성은 “A1″의 셀 주소를 반환합니다. ActiveCell에 연결된 여러 속성 및 메서드가 있습니다. 이 튜토리얼에서는 ActiveCell.Offset 메서드에 대해 집중적으로 설명합니다.

ActiveCell.Offset의 속성과 메서드

VBA로 프로그래밍할 수 있는 Activecell.Offset에 대한 다양한 속성과 메서드가 있습니다. 사용 가능한 속성과 메서드를 보려면 아래와 같이 프로시저에 다음 구문을 입력하고 키보드의 마침표 키를 누르면 드롭다운 목록이 표시됩니다.

VBA ActiveCell Offset Methods

메서드는 녹색 메서드 아이콘으로 표시되고 속성은 작은 손 아이콘으로 표시됩니다. ActiveCell.Offset 메서드의 속성과 메서드는 ActiveCell 메서드와 동일합니다.

ActiveCell.Offset 구문

ActiveCell.Offset의 구문은 다음과 같습니다.

VBA ActiveCell Offset Syntax

여기서 RowOffset 과 ColumnOffset 은 오프셋할 행의 개수(아래쪽은 양수, 위쪽은 음수) 또는 오프셋할 열의 개수(양수는 오른쪽으로 오프셋, 음수는 왼쪽으로 오프셋)입니다.

ActiveCell.Offset..Select

Activecell.Offset…Select 메서드는 Activecell.Offset 메서드와 함께 가장 일반적으로 사용되는 메서드입니다. 이 방법을 사용하면 워크시트에서 다른 셀로 이동할 수 있습니다. 이 방법을 사용하여 워크시트에서 열을 가로질러 이동하거나 행을 위 또는 아래로 이동할 수 있습니다.

동일한 열의 1행 아래로 이동하기 위한 코드입니다:

Activecell.Offset(1,0).Select

동일한 행의 1열 오른쪽 옆으로 이동하기 위한 코드입니다:

Activecell.Offset (0,1).Select

1행 아래로, 1열 오른쪽 옆으로 이동하기 위한 코드입니다:

Activecell.Offset (1,1).Select

동일한 열의 1행 위로 이동하기 위한 코드입니다:

Activecell.Offset(-1,0).Select

동일한 행의 1열 오른쪽 옆으로 이동하기 위한 코드입니다:

Activecell.Offset(0,-1).Select

아래 프로시저는 셀 범위를 반복하여 1행 아래로, 1열 옆으로 이동합니다:

Sub ActiveCellTest()
  Dim x As Integer
  Range("A1").Select
  For x = 1 To 10
   ActiveCell = x
   ActiveCell.Offset(1, 1).Select
  Next x
End Sub

코드 실행 결과는 아래 그림과 같습니다:

VBA ActiveCell_Loop

이 반복문은 x(1~10) 값을 Activecell에 입력하고 Activecell.Offset 속성을 사용하여 한 행 아래로 이동하고 한 열을 오른쪽으로 이동하여 이 루프를 10회 반복합니다.

Range 객체를 Activecell.Offset Select와 함께 사용하기

Range 객체를 ActiveCell과 함께 사용하면 가끔 혼동할 수 있습니다.

다음 프로시저를 살펴보겠습니다:

Sub ActiveCellOffsetRange()
  Range("B1: B10").Select
  ActiveCell.Offset(1, 1).Range("A1").Select
End Sub

ActiveCell.Offset(1,1).Range(“A1”)에서 Range(“A1”)이 지정되었습니다. 그러나 이것이 시트의 A1 셀이 선택된다는 것을 의미하지는 않습니다. Range(“B1:B10”)를 지정했으므로 해당 범위의 A1 셀은 실제로 통합 문서에서 B1 셀입니다. 따라서 셀은 A1 셀이 아닌 B1 셀에서 행 1개와 열 1개씩 오프셋됩니다.

VBA ActiveCell Offset Range

따라서 이 경우 매크로는 Range(“A1′)를 사용하든 않하든 동일하게 작동하므로 Range(“A1′)은 필요하지 않습니다.

ActiveCell의 대안

Offset 메서드와 함께 Activecell 을 사용하는 대신, Range 객체를 사용할 수도 있습니다.

Sub RangeOffset() 
 Range("B1").Offset(0, 1).Select
End Sub

위의 프로시저는 워크시트에서 C1셀을 선택합니다.

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기