VBA – Activecell Offset
In this Article
이 자습서에서는 VBA에서 Activecell Offset을 사용하는 방법을 보여줍니다.
ActiveCell 은 워크시트에서 활성 셀의 셀 주소를 나타내는 VBA의 속성입니다. 커서가 A1 셀에 위치한 경우 VBA의 ActiveCell 속성은 “A1″의 셀 주소를 반환합니다. ActiveCell에 연결된 여러 속성 및 메서드가 있습니다. 이 튜토리얼에서는 ActiveCell.Offset 메서드에 대해 집중적으로 설명합니다.
ActiveCell.Offset의 속성과 메서드
VBA로 프로그래밍할 수 있는 Activecell.Offset에 대한 다양한 속성과 메서드가 있습니다. 사용 가능한 속성과 메서드를 보려면 아래와 같이 프로시저에 다음 구문을 입력하고 키보드의 마침표 키를 누르면 드롭다운 목록이 표시됩니다.
메서드는 녹색 메서드 아이콘으로 표시되고 속성은 작은 손 아이콘으로 표시됩니다. ActiveCell.Offset 메서드의 속성과 메서드는 ActiveCell 메서드와 동일합니다.
ActiveCell.Offset 구문
ActiveCell.Offset의 구문은 다음과 같습니다.
여기서 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
코드 실행 결과는 아래 그림과 같습니다:
이 반복문은 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개씩 오프셋됩니다.
따라서 이 경우 매크로는 Range(“A1′)를 사용하든 않하든 동일하게 작동하므로 Range(“A1′)은 필요하지 않습니다.
ActiveCell의 대안
Offset 메서드와 함께 Activecell 을 사용하는 대신, Range 객체를 사용할 수도 있습니다.
Sub RangeOffset()
Range("B1").Offset(0, 1).Select
End Sub
위의 프로시저는 워크시트에서 C1셀을 선택합니다.