【Word VBA】カーソルを移動するWordマクロ(その2)

2017年9月9日

以前の記事(【コード】カーソルを移動するWordマクロ )の改良版応用版です。

以下の箇所にカーソルがジャンプするマクロです。句読点の直前にカーソルが移動します。

ブログの読者の方から上記記事で紹介したマクロの動きの微修正を依頼されまして作ってみました。

カーソル移動が自分の思い通りになると作業が速くなりますし、ストレスも減るのでマクロの導入の効果を実感しやすいと思います。

このマクロでできること

以下の位置にカーソルが移動します。句読点の直後にカーソルが移動します。

英文の場合にはピリオドやコンマの直後にカーソルが移動します。

マクロの解説

前回のマクロを参考にしてみましたが、少し書き直してみました。

カーソルを戻す場合には、MoveStartUntil メソッドを使いました。

カーソルを進める場合には、MoveEndUntil メソッドを使いました。

いずれも同じ文字列を対象にしています。これをPrivete Const にてmyCset として定義しています。

マクロ

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
Private Const myCset As String = "。、?!:;.,?!:;"
 
Sub カーソル_戻る()
 
  Dim myRange As Range
  
  Set myRange = Selection.Range
  
  myRange.Start = myRange.Start - 1
  myRange.MoveStartUntil cset:=myCset, Count:=wdBackward
  
  Selection.SetRange Start:=myRange.Start, End:=myRange.Start
 
End Sub
 
Sub カーソル_進む()
 
  Dim myRange As Range
  
  Set myRange = Selection.Range
 
  myRange.End = myRange.End + 1
  myRange.MoveEndUntil cset:=myCset, Count:=wdForward
 
  Selection.SetRange Start:=myRange.End + 1, End:=myRange.End + 1
 
End Sub

-コード
-,

S