매크로 셀이동

2011. 6. 14. 23:52

ActiveCell은 현재 활성화된 셀(선택된셀) 입니다.

ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, 5).Select
ActiveCell.Offset(1, 5).Select
ActiveCell.Offset(3, 0).Select
ActiveCell.End(2).Select

1)현재 셀을 기준으로
"현재 셀 + 현재 셀과 데이터가 아래 방향으로 연속된 셀의 마지막 셀까지의 범위"를 선택합니다. 단축키의 "Ctrl+Shift+ 아래
방향키"와 같은 기능
Range(ActiveCell, activeCell.End(xlDown)).Select
2)"현재 셀 + 현재 셀의 데이터가 연속된 위쪽 방향의 마지막
셀 범위"를 선택합니다.
단축키의 "Ctrl+Shift+ 위 방향키"와 같은 기능
Range(ActiveCell, activeCell.End(xlUp)).Select
3)"현재 셀 + 현재 셀의 데이터가 연속된 오른쪽 방향의 마지막 셀
범위"를 선택합니다.
Range(ActiveCell, activeCell.End(xlToRight)).Select
4)"현재 셀 + 현재 셀의 데이터가 연속된 왼쪽 방향의
마지막 셀 범위"를 선택합니다.
Range(ActiveCell, activeCell.End(xlToLeft)).Select
5) 현재 셀과 현재 셀의 인접한 셀 범위를 선택합니다. 현재
셀에서 떨어지 영역은 선택할 수 없음.
ActiveCell.CurrentRegion.Select
6) 현재
셀과 시트의 마지막 셀을 범위로 선택합니다.
Range(Range("A1"), activeCell.SpecialCells(xlLastCell)).Select
7) 현재 셀을 기준으로 열 방향으로
데이터가 있는 셀 범위를 선택하는 매크로
" 현재 셀이 빈 셀이면 프로시저를 종료
If IsEmpty(ActiveCell) then Exit Sub
" 에러가 발생해도 계속 코드를 진행시킨다.
On Error Resume Next
"
현재 셀의 바로 위쪽 셀(offset(-1,0))이 빈셀이면 현재 셀을 가장 위에 위치한 셀로 지정한다. 만약 바로 위쪽 셀에 데이터가
있다면 end(xlup)속성으로 가장 위쪽의 셀을 지정한다. 지정한 셀은 변수 TopCell에 참조됨
If isEmpty(ActiveCell.Offset(-1, 0)) Then
Set TopCell = activeCell
Else
Set TopCell = ActiveCell.End(xlUp)
End If
" 현재
셀의 바로 아래쪽 셀이 빈셀이면 현재 셀을 가장 아래 쪽에 있는 셀로 지정한다. 아니면 현재셀의 가장 아래 쪽 셀 end(xldown)를
선택해 지정한다.
"지정한 셀은 변수 BottomCell에 참조됨
If IsEmpty(ActiveCell.Offset(1,
0)) Then
Set BottomCell = ActiveCell
Else
Set BottomCell = activeCell.End(xlDown)
End If
" 변수의 범위를 선택한다.
" 현재 셀을 기준으로 열의
데이터가 있는 셀 범위가 선택됨
Range(TopCell, BottomCell).Select
8) 현재 셀을
기준으로 데이터가 있는 행 방향의 셀 범위를 선택하는 매크로
" 현재 셀이 빈 셀이면 프로시저를 종료
If isEmpty(ActiveCell) Then Exit Sub
" 에러가 발생해도 계속 코드를 진행시킨다
On Error resume Next
" 현재 셀의 왼쪽 셀이 빈 셀이면 현재 셀을 가장 왼쪽 셀로 지정한다.
" 아니면
end(xltoright) 속성으로 가장 왼쪽 셀을 선택하여 변수에 지정한다.
If isEmpty(ActiveCell.Offset(0, -1)) Then
Set LeftCell = activeCell
Else
Set LeftCell = ActiveCell.End(xlToLeft)
End if
" 현재 셀의 오른쪽 셀이 빈 셀이면 현재 셀을 가장 오른쪽 셀로 지정한다.
" 아니면 end(xltoright)
속성으로 가장 오른쪽 셀을 선택하여 변수에 지정한다.
If IsEmpty(ActiveCell.Offset(0, 1)) then
Set RightCell = ActiveCell
Else
Set RightCell = activeCell.End(xlToRight)
End If
" 변수로 지정한 셀 범위를
선택한다.
Range(LeftCell, RightCell).Select
9) 현재 셀의
열(entirecolun)을 선택한다.
Selection.EntireColumn.Select
10) 현재
셀의 행(entirerow)를 선택한다.
Selection.EntireRow.Select
11) 현재 셀을
기준으로 아래 방향의 첫 번째 빈 셀을 선택하는 매크로
" 현재 셀의 아래 셀을 선택한다(활성 셀이
된다)
ActiveCell.Offset(1, 0).Select
" Do while 순환문은 조건이 참(True)인 동안만
순환된다.
" 조건을 현재셀이 빈 셀이 아니면 계속 순환하도록 지정한다.
" 순환문의 내부에 있는 실행문에서 계속 다음의 셀을
선택하도록 하여 현재 셀의 위치를 변경시켜준다.
Do While Not isEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
" 순환문이
종료되었다면 선택된 셀은 빈 셀이다.
12) 현재 셀에서 열 방향으로 빈 셀을 찾는 매크로(오른쪽 방향)
"
11번의 문에서 Offset의 위치만 열 방향으로 변경시켜 준다.
ActiveCell.Offset(0,
1).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(0,
1).Select
Loop
13) 행에 데이터가 있는 첫번째 셀과 마지막 셀의 범위를 선택하는 매크로
" 현재
셀의 행번호에 열번호를 1로 지정하여 가장 왼쪽 셀로 변수에 참조한다.
" 현재 셀이 어떤 셀이든 항상 A열을
참조하게된다.
Set LeftCell = Cells(ActiveCell.Row, 1)
" 현재 셀의 행번호에 열번호를
256로 지정하여 가장 오른쪽 셀로 변수에 참조한다.
" 현재 셀이 어떤 셀이든 항상 IV열을 참조한다.
Set RightCell
= Cells(ActiveCell.Row, 256)
" 만약 변수가 참조하는 셀이 빈 셀이면 데이터가 있는 가장 왼쪽의 셀이
아니다.
" 따라서 다시 셀을 찾아서 참조한다: end(xltoright)
If IsEmpty(LeftCell) then
Set LeftCell = LeftCell.End(xlToRight)
End If
" 마찬가지로 가장 오른쪽
셀을 참조하는 셀이 빈셀이면 데이터가 있는 가장 오른쪽 셀이 아니다.
" 따라서 다시 셀을 찾아서 참조한다: end(xltoleft)
If IsEmpty(RightCell) Then
Set RightCell = rightCell.End(xlToLeft)
End If
" 가장 왼쪽 셀의 열 번호가 256이면서 가장 오른쪽 셀의 열
번호가 1이면 현재 셀만 데이터가 있는 유일한 셀이된다.
" 그렇지 않다면 변수가 참조하는 셀 범위를 선택한다.
If leftCell.Column = 256 And RightCell.Column = 1 then
ActiveCell.Select
Else
Range(LeftCell, RightCell).Select
End if
14) 열에 데이터가 있는 첫번째 셀과 마지막 셀의 범위를 선택하는 매크로
" 13번의 설명을
참고하세요
" 셀을 선택하는 방향만 틀립니다.
Set TopCell = Cells(1, activeCell.Column)
Set BottomCell = Cells(16384, activeCell.Column)
If IsEmpty(TopCell) Then
Set TopCell = topCell.End(xlDown)
End If
If IsEmpty(BottomCell) Then
Set bottomCell = BottomCell.End(xlUp)
End If
If TopCell.Row = 16384 And bottomCell.Row = 1 Then
ActiveCell.Select
Else
Range(TopCell, bottomCell).Select
End If

Posted by 조용문
BLOG main image
by 조용문

공지사항

카테고리

분류 전체보기 (66)
사진 (7)
흙건축 (14)
스틸하우스 (9)
D.I.Y (6)
프로그램 (0)
이동통신 (6)
농업 (1)
IoT (8)
엑셀VBA (13)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

태그목록

글 보관함

달력

«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total :
Today : Yesterday :