Wordマクロセミナー受講生の方からのご依頼で作ってみました。
特許の英訳で使うことを想定しています。
特許のクレームでは、初出名詞と既出名詞に気をつけます。その名詞の冠詞が変わるからです。
数十のクレーム、または100を超えるようなクレームになると、このチェックが非常に大変です。
じっくり読んでいればわかりますが、時間がないときにはチェックが甘くなりがちです。
そのようなときに、少しだけお役に立てるかもしれないマクロです。
このマクロの原理は簡単なので、工夫次第で用途は広がると思います
<目次>
このマクロでできること
文字列を選択した状態でマクロを実行すると、選択した部分から先頭方向に向かって「What is claimed is」と書かれた部分までの範囲で、選択した文字列を蛍光ペン黄色で着色します。
「What is claimed is」というのは、クレームの開始を示す見出しです。
ですから、クレーム記載範囲で、選択した文字列(=名詞)が既出なのかどうかを色をつけて判定できます。
(実行前)
(実行後)
マクロの解説
最初に範囲の先頭と末尾を決めて、その中で蛍光ペンの着色をします。
今回は、「What is claimed is」を先頭の言葉にしましたが、別の言葉でもいいです。
特許以外でしたら、第1章等、用途に応じて別の言葉を使ってみてください。
マクロ
Sub 英文クレーム内の用語を着色() Dim Pos_Start As Long Dim Pos_End As Long Dim myTargetRange As Range Dim myRange As Range Dim myColor As String Dim myKW As String 'キーワードが選択されていない場合 If Selection.Type = wdSelectionIP Then MsgBox "キーワードを選択してください。" Exit Sub Else 'キーワードが選択されている場合 myKW = Trim(Selection.Text) End If '現在の蛍光ペンの色を保存 myColor = Options.DefaultHighlightColorIndex '蛍光ペンの色を黄色に設定 Options.DefaultHighlightColorIndex = wdYellow 'myRange(オブジェクト変数)を設定 Set myRange = ActiveDocument.Range(0, 0) '範囲の先頭位置を取得 With myRange.Find .Text = "What is claimed is" '検索する文字列 .Forward = True .Wrap = wdFindStop .Format = False '書式の設定 .MatchCase = False '大文字と小文字の区別する .MatchWholeWord = False '完全に一致する単語だけを検索する .MatchAllWordForms = False '英単語の異なる活用形を検索する .MatchSoundsLike = False 'あいまい検索(英) .MatchFuzzy = False 'あいまい検索(日) .MatchWildcards = False 'ワイルドカードを使用する .MatchByte = True '半角と全角を区別する If .Execute = True Then Pos_Start = myRange.Start Else MsgBox "範囲の先頭が見つからないため終了します。" Exit Sub End If End With '範囲の末尾位置を取得 Pos_End = Selection.Start '範囲を指定 Set myTargetRange = ActiveDocument.Range(Pos_Start, Pos_End) '範囲内の蛍光ペンを削除 myTargetRange.HighlightColorIndex = wdNoHighlight '一括置換を実行(「検索と置換」ダイアログボックスの設定) With myTargetRange.Find .Text = myKW '検索する文字列 .Replacement.Text = "" '置換後の文字列(空欄でOK) .Replacement.Highlight = True '置換後の文字列の蛍光ペンをオン .Forward = True .Wrap = wdFindStop .Format = True '書式の設定をオン .MatchCase = False '大文字と小文字の区別する .MatchWholeWord = False '完全に一致する単語だけを検索する .MatchAllWordForms = False '英単語の異なる活用形を検索する .MatchSoundsLike = False 'あいまい検索(英) .MatchFuzzy = False 'あいまい検索(日) .MatchWildcards = False 'ワイルドカードを使用する .MatchByte = True '半角と全角を区別する .Execute Replace:=wdReplaceAll End With '蛍光ペンの色を元に戻す Options.DefaultHighlightColorIndex = myColor 'myRangeを解放 Set myRange = Nothing 'myTargetRangeを解放 Set myTargetRange = Nothing End Sub