【Word VBA】特許明細書の図面番号を白抜き文字にする

今の仕事で、特許明細書の英和翻訳をさせていただいております。

電子データをお持ちの場合には、仕事をできるだけやりやすいように加工すると楽しいと思います。

まず、色を付けるのは必須ですね。

私の場合は、図面とその説明を対比したいので、明細書中にある図面番号を目立たせます。しかも、印刷したときにわかりやすいように白抜き文字で蛍光ペンで縁取りをしたり。

このあたりは、好みに合わせて修正いただければいいのですが、私の場合には、読むことに加えて、とにかく「視覚的に」理解できる事って大切だと思います。

色を効果的に使うと、能が活性化させることができるなどと言われていますね。ちょっと違った刺激を与えて、記憶に残りやすくしたり、判断しやすくしたりできると思います。白黒の原稿はやっぱり味気ないし。

まだまだ翻訳作業のやり方には工夫の余地がありそうです。

4月に独立してからは、今ままでの特許事務所の仕事のやり方とは異なる方式をお客さんからご要望いただくので、仕事ごとにやり方を変えています。

そのマクロ作りが楽しくなってしまい、肝心の翻訳作業が進まない、、、、というジレンマになっています。

3月までの特許事務所に勤務中に日英翻訳で使っていたマクロを、今対応中の英日翻訳用に修正してみました。忘れる前に、先ほど作ったマクロを公開しておきます。

このマクロでできること

英文明細書中のFIG. 1Aなどの文字列の書式を変換します。(文字サイズを変えるわけではなく、白色文字、ボールド、灰色50%の蛍光ペン着色にします)

16-06-251

また、別のマクロで、書式を変換した部分を元に戻します。

マクロの解説

ワイルドカードを使っています。検索する図番は、半角の英数字を対象にしています。

FIG. 1Aの書き方には、いろいろとあるのでバリエーションを付けました。myHeadとしています。
これを追加すれば、他の記載も可能ですね。

マクロ(1) 変換する


Sub EN_図番を白抜きにする()

  Dim myRange As Range  'Rangeオブジェクト
  Dim myColor As String '蛍光ペンの色
  Dim myHead(1 To 5) As String
  Dim i As Integer
  
  'Rangeオブジェクトの設定
  Set myRange = Selection.Range
  
  'myHeadの設定
  myHead(1) = "FIG."
  myHead(2) = "Fig."
  myHead(3) = "FIGS."
  myHead(4) = "FIGs."
  myHead(5) = "Figs."
    
  '現在選択されている蛍光ペンの色の保存
  myColor = Options.DefaultHighlightColorIndex
  
  '蛍光ペンの色をGray50に設定
  Options.DefaultHighlightColorIndex = wdGray50
  
  '図番の白抜き文字化(置換処理)
  For i = 1 To UBound(myHead)
    With myRange.Find
      .Text = myHead(i) & " ([0-9A-Za-z]{1,})"
      .Replacement.Text = ""
      .Replacement.Font.Color = wdColorWhite
      .Replacement.Font.Bold = True
      .Replacement.Highlight = True
      .Forward = True
      .Wrap = wdFindContinue
      .MatchWildcards = True
      .Execute Replace:=wdReplaceAll
    End With
  Next i
  
  'Rangeオブジェクトを解除
  Set myRange = Nothing
  
  '蛍光ペンの色を最初に選択されていた色に戻す
  Options.DefaultHighlightColorIndex = myColor

End Sub

マクロ(2) 元に戻す


Sub EN_図番の表示を戻す()

  Dim myRange As Range  'Rangeオブジェクト
  Dim myHead(1 To 5) As String
  Dim i As Integer
  
  'Rangeオブジェクトの設定
  Set myRange = Selection.Range
  
  'myHeadの設定
  myHead(1) = "FIG."
  myHead(2) = "Fig."
  myHead(3) = "FIGS."
  myHead(4) = "FIGs."
  myHead(5) = "Figs."
  
  '図番を元に戻す(置換処理)
  For i = 1 To UBound(myHead)
    With myRange.Find
      .Text = myHead(i) & " ([0-9A-Za-z]{1,})"
      .Font.Color = wdColorWhite
      .Font.Bold = True
      .Highlight = True
      .Replacement.Text = ""
      .Replacement.Font.Color = wdColorAutomatic
      .Replacement.Highlight = False
      .Replacement.Font.Bold = False
      .Forward = True
      .Wrap = wdFindContinue
      .MatchWildcards = True
      .Execute Replace:=wdReplaceAll
    End With
  Next i
  
  'Rangeオブジェクトを解除
  Set myRange = Nothing
  
End Sub

トップへ戻る