728x90
워드에서 매크로를 이용하여 커서(입력 포인트)를 이동하려면 Selection.Move 메서드를 사용하면 됩니다.
Selection.Move 메서드
Selection 개체에 포함되어 있는 Move 메서드는 키보드의 입력 커서를 지정한 개수의 단위(unit)만큼 이동합니다. 이때 블록 지정이 되어 있다면 블록 지정을 해제됩니다.
메서드가 수행된 후에는 Long 값을 반환합니다. 이동에 성공했을 때에는 이동한 단위의 개수를 반환하고, 이동에 실패했을 때에는 0을 반환합니다.
Move 메서드를 사용하기 전에 Collapse 메서드를 사용하면 선택 영역을 취소하는 방향을 제어할 수 있다. 만일 현재 range 또는 selection이 unit의 중간에 위치한 경우 해당 unit의 시작 또는 끝으로 이동하는 것도 unit 한 개만큼 이동한 것으로 간주합니다.
Syntax
Selection.Move(Unit, Count)
Parameter
이 메서드는 다음의 두 가지 파라미터를 가집니다.
이름 | 필수/옵션 | 데이터 타입 | 설명 |
Unit | 옵션 | Wdunits | 입력 지점을 이동하는 단위 |
Count | 옵션 | Variant | - 입력 지점이 이동하는 단위의 개수. (Default 값: 1) - 양수이면 선택 영역의 끝에서 지정된 수의 Unit 만큼 문서의 뒤로 이동한다. - 음수인 경우에는 선택 영역의 앞에서 설정된 수의 Unit 만큼 문서의 앞으로 이동한다. |
※ Unit은 WdUnits이라는 enum 값으로 지정하며, 아래 표의 값 중 하나를 지정할 수 있습니다. (출처)
Example
아래의 예제는 현재 커서가 문서 본문(wdMainTextStory)에 위치한 경우, 커서를 두 단어만큼 뒤로 이동하는 매크로입니다. 만일 커서가 문서의 거의 끝 부분에 있어 두 단어만큼 이동하지 않은 경우(문서의 끝에 도달한 경우)에는 팝업 메시지를 띄우게 됩니다.
If Selection.StoryType = wdMainTextStory Then
wUnits = Selection.Move(Unit:=wdWord, Count:=2)
If wUnits < 2 Then _
MsgBox "Selection is at the end of the document"
End If
Reference
[1] Microsoft의 VBA 레퍼런스 사이트 (Word.selection.move)
728x90
반응형
'💻 IT > 워드, 엑셀 VBA 매크로' 카테고리의 다른 글
[엑셀] 율리우스력과 고레고리력의 오차 계산하기 (0) | 2024.05.15 |
---|---|
[MS 워드 VBA 매크로] 그림 크기 조절하기 (0) | 2024.05.10 |
[MS 워드 VBA 매크로] 찾기 & 바꾸기 기능 속성 (0) | 2022.11.04 |
[MS 워드 VBA 매크로] 새 문서 열기, 클립보드 내용 붙이기, 문서 저장 (0) | 2020.12.13 |
댓글