상세 컨텐츠

본문 제목

엑셀 매크로 셀지정하기 기초 Range, Cells , Offset

IT 컴퓨터/엑셀

by noonwith 2013. 8. 25. 21:13

본문

반응형

Range 개체는 속성과 매서드를 가집니다.


Range는 셀주소에 범위를 지정하고 데이터를 넣을 수 있어요


매크로에서 셀에 데이터를 읽고 쓰기 위한 가장 기초적인 부분이라 엑셀매크로 초보라면 확실하게 이해하여야 합니다.

 

먼저 Range 사용방법입니다.





Sub 셀주소범위연습()

Range("A1").Value = 100 ' A1 셀에 100 을 할당합니다.

Range("A3:B4").Value = 200 ' A3,A4,B3,B4 셀에 200을 할당합니다.

Range("A6", "B7").Value = 300 ' 콤마 지정 됩니다.

Range("A9:B10, A12:B13").Value = 400 ' 2영역을 콤마로 구분합니다.

Range("A15") = 500 ' Range 개체는 Value 속성이 기본으므로 생략 가능합니다

End Sub

 

결과를 볼까요?

 

 

 

Cells 사용 방법은 간단합니다.

Range 와 Cells 은 고정된 위치의 셀에 값을 지정합니다.

 

Select 개체를 선언하는 메서드이고 Selection은 개체를 지정하는 속성입니다.

Selection 사용전에 Select 를 선언해야 합니다.

 

Sub 행과열연습()

Cells(18, 3) = 1000 '18행 3열에 1000을 기록합니다.

 

Range("A20:B24").Select

Selection.Cells(1, 2) = 2000 'A20에서 B24까지 범위 선택후 범위의 1행 2열에 2000 기록, B20에 기록됨.

Selection.Cells(4, 1) = 2008 ‘B23셀에 기록됩니다.

Selection.Cells(5, 2) = 2011 ‘B24셀에 기록됩니다.

 

Range(Cells(26, 1), Cells(30, 2)) = 3000 ' range 속성의 인수로 사용해도 됩니다

End Sub

 

결과를 보여드립니다.

 

 

 

 

실제 업무에 사용하기 위해서 행열 번호지정하는 법도 알아야겠죠?

 

예를 들어 A33:B41 의 범위에 3300을 기록하려면

i가 33 일때 j 가 1 에서 2 까지 3300을 기록하고 i 가 41가 될때까지 반복하도록 합니다

 

Sub 행열번호이해하기()

Dim i As Integer

Dim j As Integer

 

For i = 33 To 41

For j = 1 To 2

Cells(i, j) = 3300

Next j

Next i

End Sub

결과입니다.

 

 

 

Offset 사용 방법

Offset을 이용하면 기준되는 셀 위치에서 가변되는 상하 좌우 셀 위치를 지정할수 있습니다. ActiveCell은 현재 할성화된 셀을 의미합니다.

 

Sub 변경되는위치의셀지정()

Range("A44").Offset(0, 5) = 333 'A44 셀에서 0 행 5열 떨어진 셀에 333 기록합니다

Range("A44:B45").Offset(2, 5) = 444 ' A44셀을 기준으로 2행 1열 떨어진 위치에

'범위 지정 후 F46:G47 까지 444 기록합니다

 

Range("A50").Select

ActiveCell.Offset(0, 0) = 500 'A50 셀과 같은 위치에서 떨어진 위치 지정

ActiveCell.Offset(0, 1) = 600 '우측한칸 위치

ActiveCell.Offset(0, 2) = 700 '우측 두칸 위치

Range("D55").Select

Selection.Offset(0, 0) = 800

Selection.Offset(0, -1) = 790

Selection.Offset(0, -2) = 780 '열에 음수를 사용하면 왼쪽으로 떨어진 위치를 지정한다

End Sub

 

 

 

 

Offset을 이용하여 반복 작업하면 실제 업무에 할용되는 기초를 익히게 됩니다

 

Sub 상대적지정셀의반복셀지정()

Dim i As Integer

 

Range("d60").Select

For i = 1 To 5

ActiveCell.Offset(i, 0) = 888

Next

End Sub

 

 

보면 쉬운것 같은데 막상 적용하려면 헷갈리는게 셀지정입니다. 엑셀 매크로에서 가장 기본적이면서 실무에 많이 쓰이게 되는 Range, Cells , Offset 은 기본 개념이라고 생각하고 확실하게 익혀 두어야 합니다.

 

위내용의 파일입니다.

 

2007엑셀매크로셀지정.txt




반응형

관련글 더보기

댓글 영역