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

2017年2月24日

先日の記事「【コード】最終段落にカーソルを移動するWordマクロ」の続きです。

実は、もう少し簡単な表記がありましたので紹介します。

このマクロでできること

前回のマクロと同様に、現在の文書の最終段落にカーソルを移動します。

最終段落というのは、文字列が書かれている段落を意味します。

そのため、空の段落やタブ記号のみの段落、全角や半角のスペースだけが書かれた段落は判定から除外します。

(実行前)

最終段落

(実行後)

全角スペース、半角スペース、タブのみの段落は無視します。

最終段落

マクロの解説

前回の記事で紹介したマクロでは、段落中にある編集記号を除外した上で文字数を数えました。

今回の記事では、ComputeStatistics メソッド を使っています(16行目)。Wordで文字数や単語数を計算するならこのメソッドが便利です。

参考:【コード】表内の文字数を計算するWordマクロ 

マクロ


Sub 最終段落を見つけるマクロ2()

 Dim myRange As Range
 
 '-------------------------------------------
 '文書の最終段落をmyRangeに設定
 '-------------------------------------------
 With ActiveDocument
  Set myRange = .Paragraphs(.Paragraphs.Count).Range
 End With

 Do
  '-------------------------------------------
  '文字数の判定
  '-------------------------------------------
  If myRange.ComputeStatistics(wdStatisticCharacters) <> 0 Then
   'myRangeの選択
   myRange.Select
   Exit Do
  Else
   '現在の段落の直前の段落をmyRangeに設定
   Set myRange = myRange.Paragraphs(1).Previous.Range
  End If

 Loop

 Set myRange = Nothing

End Sub

-コード
-, ,