文書の最終段落を見つけて選択するマクロです。
文書の最終段落には特定の情報が含まれていることがあります。
なので、内容を確認するためにその段落にカーソルを移動します。
<目次>
このマクロでできること
現在の文書の最終段落にカーソルを移動します。
最終段落というのは、文字列が書かれている段落を意味します。
そのため、空の段落やタブ記号のみの段落、全角や半角のスペースだけが書かれた段落は除外します。
(実行前)
(実行後)
マクロの解説
表内の改行記号がくせ者です。
表内のセルの改行記号は以下のように表示します。
Chr(13) & Chr(7)
なので、表内で判定が止まらないようにChr(7)も除外対象にしています。
厳密に判定する場合には、段区切り記号 Chr(10) やソフトリターン Chr(11) や改ページ記号 Chr(12) なども除外文字に入れましょう。
マクロ
Sub 最終段落を見つけるマクロ() Dim myRange As Range Dim myText As String Dim myChr(5) As String Dim i As Integer '------------------------------------------- '不要な文字列の設定 '------------------------------------------- myChr(1) = Chr(13) '改行記号 myChr(2) = Chr(9) 'タブ myChr(3) = Chr(7) '表内の改行記号 myChr(4) = Chr(32) '半角スペース myChr(5) = Chr(-32448) '全角スペース '------------------------------------------- '文書の最終段落をmyRangeに設定 '------------------------------------------- With ActiveDocument Set myRange = .Paragraphs(.Paragraphs.Count).Range End With Do '------------------------------------------- '編集記号を除外 '------------------------------------------- myText = myRange.Text For i = 1 To 5 myText = Replace(myText, myChr(i), "") Next i '------------------------------------------- '編集記号以外の文字列の判定 '------------------------------------------- If Len(myText) <> 0 Then myRange.Select Exit Do Else '現在の段落の直前の段落をmyRangeに設定 Set myRange = myRange.Paragraphs(1).Previous.Range End If Loop Set myRange = Nothing End Sub