【Wordマクロ】和文明細書の請求項へジャンプ | みんなのワードマクロ

みんなのワードマクロ

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

ブログ読者の弁理士の方と懇親会でお話をする機会がありまして、特許明細書の請求項へジャンプするマクロがほしいとのご要望をいただきまして、作ってみました。

段落番号へのジャンプは、日英特許明細書の段落番号を探すマクロ(改良版) で紹介したとおりです。私もこれを使っています。

確かに、請求項を探すのは面倒だなと思ってました(笑)。


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

日本語の特許明細書の請求項についてのみ検索できます。

以下のように隅付き括弧で囲まれた請求項番号を検索します。

【請求項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 です。ここに注意が必要です。

文書の一番最後の改行記号の次の位置にはカーソルを置くことができません。



よって、末尾 -1なのです。





▼マクロ

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



▼関連記事

日英特許明細書の段落番号を探すマクロ(改良版)

定義済みのブックマーク一覧  (インストラクターのネタ帳)