特許明細書の日本語段落番号を英語段落番号に変換するマクロ(フィールド表示) | みんなのワードマクロ

みんなのワードマクロ

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

特許明細書の段落番号を日本語仕様から英文仕様に変更します。
みんなのワードマクロ

▼このマクロでできること
フィールドで表示される日本語明細書の段落番号(【0001】など)を、英文明細書の段落番号([0001]など)に変更します。

おそらく、みなさんが現在使われているフィールドの書式の多くに対応していると思いますので、お試し下さい。

うまく機能しない場合には、以下のブログで紹介しましたフィールドをご利用下さい。

特許明細書の段落番号をフィールドコードで入力するマクロ

特許明細書の段落番号をフィールドコードで入力するマクロ(その2)


また、変換後に確定する場合には、以下のフィールド用マクロをご利用下さい。

【1行マクロ】文書中の全てのフィールドコードを文字列に変換する



▼マクロの解説
フィールドコードをいったん表示させてから、フィールドで定義された書式部分を置換することで、日本語段落番号から英語段落番号に変換しています。

そして、その後、フィールドを更新しています。

このマクロでは、識別子部分はそのまま残しますので、以下のような自体になることもご理解下さい。

たとえば、同じWord文書内に、別々のフィールドで書かれた日本語段落番号と英語段落番号があります。

これらは、上記のブログ記事で紹介したフィールドで記載されていますので、識別子がParaJP(日本語段落番号)とParaEN(英語段落番号)となっています。


みんなのワードマクロ

この状態でマクロを実行します。日本語段落番号が英語段落番号になります


みんなのワードマクロ

しかし、上記の通り連番になりません。なぜなら、連番になるのは、同じ識別子のフィールド同士だからです。

現状のマクロでは上記のようになることをご理解の上、お試し下さい。




▼マクロ
Sub 日本語段落番号を英語段落番号に変更()

  Dim myRange As Range
  
  '画面更新 オフ
  Application.ScreenUpdating = False
  
  'フィールドコードを表示
  ActiveWindow.View.ShowFieldCodes = True
  
  Set myRange = ActiveDocument.Range(0, 0)
   
  With myRange.Find
    .Text = """【0000】"" \* DBCHAR"
    .Replacement.Text = """[0000]"" \* SBCHAR"
    .Forward = True
    .Wrap = wdFindStop
    .Format = False
    .Execute Replace:=wdReplaceAll
  End With

  'フィールドコードを非表示
  ActiveWindow.View.ShowFieldCodes = False
  
  'フィールドを更新
  ActiveDocument.Fields.Update
  
  '画面更新 オン
  Application.ScreenUpdating = True
  
  Set myRange = Nothing

End Sub



▼関連記事
特許明細書の段落番号をフィールドコードで入力するマクロ

特許明細書の段落番号をフィールドコードで入力するマクロ(その2)


【1行マクロ】文書中の全てのフィールドコードを文字列に変換する