段落番号へのジャンプは、日英特許明細書の段落番号を探すマクロ(改良版) で紹介したとおりです。私もこれを使っています。
確かに、請求項を探すのは面倒だなと思ってました(笑)。
▼このマクロでできること
日本語の特許明細書の請求項についてのみ検索できます。
以下のように隅付き括弧で囲まれた請求項番号を検索します。
【請求項1】、【請求項2】、、、
▼マクロの解説
日英特許明細書の段落番号を探すマクロ(改良版) で紹介した技術を用いています。
請求項の番号が全角でも半角でも検索できるように、全角と半角を区別しない検索条件となっています。
一度、文書の末尾を選択してから請求項番号を選択し直します。その結果、請求項を見つけた場合にはその項目が画面の一番上に表示されます。
文書の末尾を選択する方法はいくつかあります。
前回の記事では、以下のようにEndKeyメソッドを使いました。
Selection.EndKey Unit:=wdStory
今回は、ブックマークを用いています。
ActiveDocument.Bookmarks("\EndOfDoc").Select
ブックマークについては、Microsoft Excel MVPの伊藤潔人さんのインストラクターのネタ帳 の「定義済みのブックマーク一覧 」をご覧ください。
私は、以前は以下のように文末を選択していました。同じこと結果になります。
With ActiveDocument
.Range(.Range.End - 1, .Range.End - 1).Select
End With
カーソルで選択しうる範囲は、ActiveDocument.Range.End -1 です。ここに注意が必要です。
文書の一番最後の改行記号の次の位置にはカーソルを置くことができません。
![](https://stat.ameba.jp/user_images/20150711/09/gidgeerock/16/18/p/t02200095_0360015513362562922.png?caw=800)
よって、末尾 -1なのです。
![](https://stat.ameba.jp/user_images/20150711/09/gidgeerock/3d/83/p/t02200095_0360015613362562921.png?caw=800)
▼マクロ
Sub 請求項へジャンプ()
'和文明細書の請求項へのジャンプ
Dim myNumber As Variant '請求項番号の入力
Dim myMessage As String 'メッセージ
Dim myTitle As String 'タイトル
Dim myRange As Range 'Rangeオブジェクト
myMessage = "請求項番号を入力して下さい。" & vbCr _
& "(半角・全角どちらでも可)"
myTitle = "請求項へジャンプ"
Do
myNumber = InputBox(myMessage, myTitle)
If myNumber = vbNullString Then End
Loop While IsNumeric(myNumber) = False
Set myRange = Selection.Range
With myRange.Find
.Text = "【請求項" & CInt(myNumber) & "】"
.Forward = True
.Wrap = wdFindContinue
.MatchByte = False
.Execute
End With
If myRange.Find.Found = True Then
With ActiveDocument
.Bookmarks("\EndOfDoc").Select
.Range(myRange.End, myRange.End).Select
End With
Else
MsgBox "請求項:" & CInt(myNumber) & " は見つかりませんでした。", _
vbInformation, "検索結果のお知らせ"
End If
Set myRange = Nothing
End Sub
▼関連記事
日英特許明細書の段落番号を探すマクロ(改良版)
定義済みのブックマーク一覧 (インストラクターのネタ帳)