【Wordマクロ】選択範囲を変更する | みんなのワードマクロ

みんなのワードマクロ

ワードマクロで、文書作成とオフィス事務を効率化!!

----------------------------------------
この記事を新しいサイトに転記しました
----------------------------------------

上書き翻訳での効率化は、早く文字列を正確に選択して移動させることである程度実現できます。

この方法を自分なりに考えていくことが楽しかったりもします。

ぱらぱら を使った上書き翻訳をする場合にご利用ください。

ライターの方やチェッカーの方にも役に立てるかもしれません。




▼このマクロでできること

選択範囲を指定した記号まで広げたり狭めたりします。

カーソルよりも右方向(文末に向かった方向)にだけ動作します。

このマクロでは、「。、?!:;.,?!:;」を基準に範囲指定します。



▼マクロの解説

前回の「カーソルの移動 」マクロと同じような考え方になっています。

myCset の定数をPrivate キーワードで定義しています。

このように、特定のプロシージャー(Sub からEnd Subまでのプログラム文)の外に定数を宣言することができます。

Privateとすると、このモジュール内のすべてのプロシージャーからこの定数を参照することができます。

複数のプロシージャーで共通した定数であれば、このように一か所で定義するとわかりやすいですね。

変更するときにも、プロシージャーごとに変更する手間が省けるので便利です。

前回のカーソルの移動マクロと同じモジュールに入れる場合には、「Private Const myCset As String = "。、?!:;.,?!:;"」部分は省略してください(入力不要です)。



青文字部分が選択範囲を狭めるためのマクロです。

赤文字部分が選択範囲を広げるためのマクロです。



▼マクロ

Private Const myCset As String = "。、?!:;.,?!:;"

Sub 選択範囲_戻る()

 Dim SS As Long
 Dim SE As Long
 Dim myRange As Range

 SS = Selection.Start
 SE = Selection.End
 
 If SS = SE Then End
 
 Set myRange = Selection.Range
 myRange.MoveEndUntil cset:=myCset, Count:=wdBackward
 
 If myRange.Start < SS Then
   myRange.Start = SS
 Else
   myRange.End = myRange.End - 1
 End If
 
 myRange.Select

End Sub



Sub 選択範囲_進む()

 Dim myRange As Range
      
 Set myRange = Selection.Range
 
 myRange.End = myRange.End + 1
 myRange.MoveEndUntil cset:=myCset, Count:=wdForward
 
 myRange.Select

End Sub




▼関連記事

カーソルの移動

一括置換用マクロ「ぱらぱら」