こんにちはモチ湖です。
特許実務者であり、株式会社ジムウインの設立メンバーで社長です!
段落番号を挿入するのが面倒だなあ。
簡単にできる方法を教えてほしいなあ・・・
今回は、特許明細書に段落番号を自動付与するマクロを紹介します!
本記事の内容
・特許明細書の段落番号をワンクリックで自動挿入する方法
本記事の信頼性
この記事を書いている私は、特許実務者であり、中堅特許事務所でシステム管理者を経験しています。これまでに、知財関係の便利ツールを発掘しています。
マクロコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
Sub ParagraphNumber() '前処理 'カーソルを先頭に移動させる。 ActiveDocument.Range(0, 0).Select '改行記号を統一する With Selection.Find .Text = "^l" .Execute Replace:=wdReplaceAll, replacewith:="^p" End With '既存の段落番号を削除 With Selection.Find .Text = "【[0-90-9]{1,}】" .MatchPhrase = False .MatchSoundsLike = False .MatchAllWordForms = False .MatchFuzzy = False .Forward = True .MatchWildcards = True .Execute Replace:=wdReplaceAll, replacewith:="^p" End With With Selection.Find .Text = " ^13" .MatchByte = False .Execute Replace:=wdReplaceAll, replacewith:="^p" End With '空行を削除 With Selection.Find .Text = "^13{2,}" .MatchPhrase = False .MatchSoundsLike = False .MatchAllWordForms = False .MatchFuzzy = False .Forward = True .MatchWildcards = True .Execute Replace:=wdReplaceAll, replacewith:="^p" End With 'インデントを全角スペースに変更する Dim p As Paragraph For Each p In ActiveDocument.Paragraphs If p.FirstLineIndent > 0 Then With p .Range.ParagraphFormat.Reset .Range.InsertBefore Text:=" " End With End If Next p '段落付与処理 Dim i As Integer Dim pflag As Boolean Dim description As Boolean Dim pNumber As String i = 1 '連番の初期値を設定 pflag = False '前の段落が【図1】などの場合true。初期値はfalse description = False '明細書の場合true。初期値はfalse '各段落ごとに処理を繰り返す For Each p In ActiveDocument.Paragraphs '書類名判定 If p.Range.Text Like "*【書類名】*" And p.Range.Text Like "*明細書*" Then description = True ElseIf p.Range.Text Like "*【書類名】*" And p.Range.Text Like "*[願,図面,請求の範囲,要約書]*" Then description = False End If '明細書の場合、 If description = True Then '段落が画像の場合、スルーする。 If p.Range.InlineShapes.Count >= 1 Then pflag = False '【】の段落の場合 ElseIf InStr(p.Range.Text, "【") Then Dim pWord As String pWord = Left(p.Range.Text, InStr(p.Range.Text, "】")) '【】のみ抽出 '【図1】などの場合、 '前の段落が【図1】などの場合、スルーする。 If pflag = True And pWord Like "*[0-90-9]*" And pWord Like "*[特許文献,化,数,表,図]*" Then pflag = True '前の段落が【図1】など以外の場合、段落番号を付与する。 ElseIf pflag = False And pWord Like "*[0-90-9]*" And pWord Like "*[特許文献,化,数,表,図]*" Then pNumber = " 【" & StrConv(Format(i, "0000"), vbWide) & "】" p.Range.InsertBefore pNumber & vbCr i = i + 1 pflag = True 'その他【】の段落は、スルーする。 Else pflag = False End If '文頭が全角スペースの場合、段落番号を追加する。 ElseIf p.Range.Text Like " *" Then pNumber = " 【" & StrConv(Format(i, "0000"), vbWide) & "】" p.Range.InsertBefore pNumber & vbCr i = i + 1 pflag = False End If End If Next p End Sub |
マクロの特徴
このマクロは、「前処理工程」と「後処理工程(段落番号付与)」に大きく分かれます。
<前処理工程(3行目~53行目)>
前処理工程では、「改行記号の統一」→「既存の段落番号の削除」→「空行の削除」→「インデントを全角スペースに変換」の順に処理を行っていきます。
前処理工程の特徴点は、43行目~53行目の「インデントを全角スペースに変換」です。
インターネット出願ソフトは、「インデント」を認識しないので「インデント」を「全角スペース」に変換しておく必要があります。
<後処理工程(66行目~120行目)>
後処理工程は、「特許明細書の様式」に基づいて、下記の通り「ルール化」しています。
<ルール化>
下記に該当する場合、段落番号を付与しない。
① 明細書以外の書類の場合。
② 画像データが挿入されている場合
③ 明細書の【特許文献1】、【非特許文献1】、【化1】、【数1】、【表1】、【図1】の場合、かつ、
前の段落が【特許文献1】、【非特許文献1】、【化1】、【数1】、【表1】、【図1】の場合。
④ 明細書の【技術分野】等の墨付きかっこの場合。
上記①のルールは、69行目~79行目で処理します。
まず、【書類名】が明細書の場合に「description = True」、【書類名】が明細書以外の場合に「description = False」になるように設定します。
次に、「description = True」の場合に、段落番号の付与処理に移行するように設定します。
上記②のルールは、81行目~83行目で処理します。
段落がフィールドコードの場合スルーします。
上記③のルールは、88行目~101行目で処理します。
まず、前の段落が【図1】などの場合は「pflag = true」、それ以外は「pflag = False」になるように設定します。
次に、段落が【図1】などであって、「pflag = true」のときスルー、「pflag = False」のとき段落を付与するよう設定します。
上記④のルールは、103行目~107行目で処理します。
上記ルール③以外の墨付きかっこの場合、スルーします。
そして、上記①~④以外の場合は、段落番号を付与するという流れになっています。
マクロの使い方は、過去の記事をご覧ください。
①マクロで明細書変換
-
画像付ワードをhtmlにワンクリックで変換する方法【商標】
続きを見る
②マクロで図面変換
-
特許の図面データをhtmlにワンクリックで変換する方法
続きを見る
③マクロでファイルにリンクの画像を貼る
-
「ファイルにリンク」の選択を省略して画像を貼付けるマクロ
続きを見る
④マクロをツールバーに登録
-
HTML変換マクロ用のツールバーを作成する方法
続きを見る
以上、特許明細書に段落番号を自動付与するマクロを紹介していきました。
このブログではこれからもどんどん特許事務に役立つ情報を発信していきますのでご覧いただければと思います!