2015/12/04
請求項の引用関係を自動で直すマクロ
皆様、こんにちは。 外苑前駅3番出口徒歩20秒、特許業務法人 IPXの奥村 光平(オクムラ コウヘイ)です。代表弁理士COO/CTOとして、CEOの押谷とともに当所IPXを経営しています。 IPXでは、"From XXTech to Academic Study" をポリシーに、創業当初より得意としていたベンチャー系テクノロジーから、大学・研究機関等での高度な専門性を必要とする学術研究に至るまで、多様な経歴を有するスタッフが、ソフトウェア・ICT分野(特に、AI, IoT,VR/AR, CV, 画像処理, ロボティクス, 無線通信, 制御等)の特許事案を、迅速かつ丁寧に対応いたします。「品質」と「スピード」とは徹底化されたIPX独自の3つのメソッドに基づくことで両立いたします(爆速知財サービス)。 特許請求の範囲の請求項を削った際に、 請求項の引用関係を自動で直すマクロを作ってみました。 自分用に作ったものですが、ご自由にお使いください。 増やしたときに振り直すようにしてないので、 それはまた別に公開します。 このままソースを貼り付けて Sub 請求項の対応、重複確認() を実行すればOKです。 <注意> あくまでも補助なので、最後に自分でチェックすることは怠らないように。 「請求項」というキーワードに反応するので、 「請求項1又は2」みたいな感じだと「2」には反応しません 普段から「請求項1又は請求項2」や「請求項1~請求項5」(~は乃至でもOK)といった 書き方をするといいと思います。 '====================================ここから Sub 請求項の対応、重複確認() Dim yarinaoshi As Boolean Dim stringI As String Dim k As Integer Dim Max As Integer Dim Claim(99) k = 1 Max = 99 '自分でかえられます '請求項のチェック For i = 1 To Max stringI = StrConv(i, vbWide) Selection.Start = Selection.End keyword = "【請求項" + stringI + "】" myOrgText = ActiveDocument.Content.Text myCnvText = Replace(myOrgText, keyword, "", , , vbBinaryCompare) myCnt = (Len(myOrgText) - Len(myCnvText)) / Len(keyword) '欠番の請求項が引用されていないかをチェック If myCnt = 0 Then キーワード検索2 ("請求項" + stringI) '格納 ElseIf myCnt = 1 Then Claim(k) = "請求項" + stringI k = k + 1 '重複している場合は手動で直し ElseIf myCnt > 1 Then Selection.Start = 0 Selection.End = 0 キーワード検索2 (keyword) yarinaoshi = True End If Next If yarinaoshi = True Then MsgBox "重複請求項を修正してからもう1度実行してください!", vbOKOnly, 警告 Else '請求項の置換 For i = 1 To Max If Claim(Max + 1 - i) <> Empty Then Call ハイライト無しを置換(Claim(Max + 1 - i), "請求項" + StrConv(Max + 1 - i, vbWide)) End If Next MsgBox "請求項の番号を修正しました!! ただし赤いマーカ箇所がある場合は、そこだけ手動で直してください!", vbOKOnly, 警告 End If End Sub Sub キーワード検索2(keyword) tmp = Options.DefaultHighlightColorIndex Selection.Find.ClearFormatting Options.DefaultHighlightColorIndex = wdRed Selection.Find.Replacement.Highlight = True With Selection.Find .Text = keyword .Replacement.Text = keyword .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False .Replacement.Highlight = True End With Selection.Find.Execute Replace:=wdReplaceAll Options.DefaultHighlightColorIndex = tmp End Sub Sub ハイライト無しを置換(word1, word2) tmp = Options.DefaultHighlightColorIndex Selection.Find.ClearFormatting Options.DefaultHighlightColorIndex = wdYellow Selection.Find.Highlight = False Selection.Find.Replacement.Highlight = True With Selection.Find .Text = word1 .Replacement.Text = word2 .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False .Replacement.Highlight = True End With Selection.Find.Execute Replace:=wdReplaceAll Options.DefaultHighlightColorIndex = tmp End Sub '====================================ここまで 姉妹ブログ: 爆速!知財のIPX(当所CEO 押谷)もよろしくお願いします。 |