「知的財産」カテゴリーアーカイブ

Google Patents 更新状況(2026/02/27現在)

Google Patents は、2026年2月27日現在、テキスト公報については順調に更新されていますが、PDF公報については昨年(2025年)の夏以降、パッタリと更新が止まっているようです。

この1週間の更新状況ですが、テキスト公報は、US、JP、EP、WO、CNのいずれも2026/02/24に更新がありました。一方PDF公報については、今週も更新はありませんでした。

現時点で収録されている最新の公報は、次のような状況。

   最新テキスト公報 最新PDF公報
US公開 US2026/0047511 US2025/0228148
US登録 US12550799 US12356877
JP公開 JP2026-022658 JP2025-106174
JP登録 JP7813423 JP7707475
EP公開 EP4694665 EP4583678
WO公開 WO2026/036152 WO2025/147726
CN公開 CN121511692 CN120305756

Power Automate Desktop で Espacenet にアクセス

Espacenetは、世界各国の特許調査や特許情報入手にとても有用なサイトだが、最近はロボットアクセス対策が強化されたため、拙作のSeleniumBasicを使ったVBAプログラム(PKMなど)を用いて、複数の特許公報を連続ダウンロードするというようなことができなくなった。

まあ、実際にはほとんどの場合で Google Patents から公報データのダウンロードができるので大きな問題にはならないのだが、古い公報などで Google Patents に収録されていないケースもあるので、Espacenetからのダウンロードもある程度自動的にできると助かるのだが。。

一方で、Windowsに標準搭載されている Power Automate Desktop を使えば、各種のWeb操作やExcelとの連携などの一連の操作を自動化することがある程度可能だと知り、少し試してみることにした。

まずは入門書を読み、基本的な使い方を一通り学んだうえで、Espacenetからテキスト公報(タイトル、出願人、発明者、アブストラクト、クレーム、詳細な説明)をダウンロードする操作と、PDF公報をダウンロードする操作の自動化にチャレンジしてみた。

Power Automate Desktop は、手動で行っている1つ1つの操作を再現して実行するというものなので、今回の場合、例えば対象となる公報番号を記載したエクセルファイルを用意しておき、これを読み込んで公報番号を取得し、一方でブラウザを起ち上げ、URLを指定して目的のWebページを開き、テキストボックスに公報番号を入力し、検索ボタンをクリックし、表示されたページで必要なリンクやボタンを適宜クリックし、所望の情報を表示させ、これを抽出してエクセルファイルに転記したり、PDFファイルをダウンロードすする、というような操作を自動で行うことになる。

操作のプログラミングは、通常のプログラム言語を使ったプログラムと中身は同様だが、単位操作ごとにブロックをフローとして並べていくことで作り上げていくので、慣れてしまえば簡単といえば簡単。ただ、無料の Power Automate Desktop の場合、関数機能がないなどの制約もあり、あまり複雑な操作は難しいという難点はあるようだ。

ともかくも、入門書の記載などを参考にして見よう見まねでフローを作り上げてテストしてみたところ、比較的簡単に、思ったような一連の操作を自動的に実施することができた。懸念していたEspacenetでのロボットアクセス判定については、最初にブラウザでEspacenetのサイトを開いたときに「人間であることを確認」というチェックが入るので、Power Automate Desktop による自動操作をする前に、一度手動でEspacenetのページを開き、人間チェックをクリアしておけば、その後に続けて自動操作をする場合、特に問題なく実行できるようだ。

参考までに、PDF公報のダウンロードを行う Power Automate Desktop のフローを示す。より詳細を知りたい方は、ご連絡ください。

というわけで、まあそんなに多用することはないと思うけど、Google Patents にデータが収録されておらず、Espacenet にはある、というような場合には、Power Automate Desktop を使うという選択肢がありそうだ、ということがわかって、一安心。

Google Patents データ更新停止からの完全復旧!!(2025/02/17)

いつも仕事などで大変お世話になっているGoogle Patents(https://patents.google.com)だが、昨年12月頃から、データベースのアップデートが滞り、新規データが追加されていない状態が続いていたのだが、2025/02/12になって、少なくとも一部のデータの更新が行われたことが確認され、さらに2025/02/17には、途中の抜けていたデータも埋まり、問題なく使用できる状態に戻ったとみられる。

2025/02/10の時点では、Google Patentsに収録されている最新のデータは次の通りだった。
 JP:特開2024-161626(2024/11/19発行)
   特許7587090(2024/11/19発行)
 US:US2024/381800(2024/11/14発行)
    US12,150,394(2024/11/19発行)
 WO:WO2024/234021(2024/11/14発行)
 EP:EP4462987(2024/11/13発行)
 CN:CN118985183(2024/11/19発行)

2025/02/12の時点では、どうやら2024年に発行され、Google Patentsに収録されていない公報は、まだ未収録のままだが、2025年発行の公報は、順次収録されているというような状態に見えていたが、2025/02/17には、この抜け落ちていた部分も無事に収録されたとみられる。この間、約2.5か月。とても心配したが、本当によかった。

Excel VBAを使用してJ-PlatPatから公報テキストをダウンロードする方法(7)

14.経過情報照会ページ(各書類)を開く


ここでは上図に示した「経過情報表示」の「経過記録」のページにリンクされている各書類(明細書、拒絶理由通知書、手続き補正書、意見書など)を1つずつ開き、内容を読み込む方法について説明しようと思う。この処理は従来までの手法よりもやや複雑になるのだが、その理由として、まず、ここにどんな名称の書類がどの順で表示されているのかは、公報1つ1つ違うので、このページ内に多数存在しているAタグのうち、どれをクリックすればよいのか判断するのが難しいこと、さらには、同じ名称を有する複数の異なる書類(リンク)が存在している場合があること(上図のケースでは拒絶理由通知書、手続き補正書、意見書が3通ずつ存在している)などが挙げられる。

この「経過記録」のページに表示されている書類は、「審査記録」、「審判記録」、「PCT国際出願記録」の3つのブロックに分けて記載されている(審判記録とPCT国際出願記録のブロックは、該当する書類が存在する公報でのみ表示される)ので、それぞれのブロックごとに分割して処理する方法も考えられるが(拙作ツール「JPPD」ではそうしている)、ここでは全部まとめて処理する方法を紹介する。

このページの中には、クリックしたい⑩「特許願」などの書類名称へのリンク以外にも、ページ左上の「J-PlatPat」へのリンクや、「登録6621446」や「査定不服審判2019-013295」へのリンク、⑨「出願情報」ページへのリンクなどに加え、「拒絶理由条文コード」へのリンクなども含まれている。この中で、必要な書類へのリンクと不要なリンクを選定・判別する必要がある。

このページのソースを詳しく眺めてみると、⑩「特許願」などの書類へのリンクは <a class=”xx” で始まるAタグとなっているのに対し、「拒絶理由条文コード」へのリンクは <a style=”xx” で始まるAタグとなっている。その他の「J-PlatPat」へのリンクや、「登録6621446」などへのリンクは、<a class=”xx” で始まるAタグ、<a style=”xx” で始まるAタグ、さらには<span で始まるSPANタグが混在している状態のようである。これらのリンクの中から、クリックしたいリンクだけをどうやって選び出すのか、いくつかの方法が考えられるが、ここでは、そのうちの1つの方法を、以下に示す。

Dim flag As Integer
flag = 0

For Each objtag In objIE3.document.getElementsByTagName(“a”) Then
      If InStr(objtag.outerHTML, “<a class=”) > 0
            If InStr(objtag.text, “特許願”) > 0 Then
                  flag = 1
            ElseIf InStr(objtag.text, “TOP”) > 0 Then
                  flag = 0
            End If

            If flag =1 Then
                  objtag.Click

      ----------------------------
      新たに開いたウィンドウをオブジェクト変数(objIE4など)に取り込み
      ファイルに書き込むなり、変数に取り込むなりの処理を行い
      その後、開いたウィンドウを閉じる処理を行う
      ----------------------------

            End If
      End If
Next

上のコードを解説すると、「経過情報表示」ページの全てのAタグを順番に(左上から右下に)調べ、<a class= で始まるタグだけを選び出し、さらにそれが「特許願」以降で「TOP」より前のタグに限定して(flag = 1 のときだけ)、そのAタグをクリックしている。

多くの例を確認してみたところ、最初にクリックすべき書類名称は、ほとんどが「特許願」だが、稀に「出願審査請求書」となる場合(古い公報)や「国内書面」となる場合(PCT出願の場合)があるようなので、実用上は、これら3つのいずれかであれば flag = 1 とするのが良いだろう。一方、最後の書類名称は特定できないのだが、最後の書類の次のAタグは、たぶん必ずこのページの右下にある「↑」で、ソースコード上は「TOP」と表記されているAタグなので、このようなコードによって、必要な文書のリンクだけを次々とクリックできる(ようだ)。

なお、このようにして書類名称を次々とクリックして得られる書類は、たまたま同じ名称の場合があるので、例えばクリック回数 i をカウントし、書類名称の後に “_i” や “(i)” といった形で文書名にカウントを付加することで区別するような工夫をすればよいだろう。

Excel VBAを使用してJ-PlatPatから公報テキストをダウンロードする方法(6)

12.「図面」を入手

ここまでで、目的の公報の文献表示画面から、書誌、要約、請求の範囲、詳細な説明を全て「開いた」状態にした後に、その内容をテキストファイルにダウンロードすることができたと思う。ここではさらに、図面もダウンロードしてみようと思う。

このためには、「請求の範囲」や「詳細な説明」を開くのと同様の処理で、「図面」の「開く +」をクリックしてやり、折り畳まれている図面セクションを開いた後に、objIE2.document.body.innerHTMLをファイルに書き込むなり、変数に取り込むなりの操作を行う。しかし、このままでは図を表示させることはできない。

この部分のソースコードを「要素の検査」にて見てみると、下に示すように、複数の図が、<img id=”〇〇” style=”△△” alt=”◇◇” src=”xx.jpg”> といった形式で記載されている。


このうちの src=”xx.jpg” の xxの部分が図面へのリンクを示すURLの一部となっており、xxの前に “https://www.j-platpat.inpit.go.jp/” を付け加えれば、この図が表示されるリンク先URLが得られるようである。そこで、図面のリンクURLが記載されている部分を書き換えてやればよいことになる。具体的には、このページのソースの中から”【図1】”以降の部分を取り出し、次に示すような処理を行うことで、その中の、src=”xx.jpg” の”xx”の部分を、”https://www.j-platpat.inpit.go.jp/xx.jpg” に文字列置換してやればよい。

Dim temp As String
Dim k As Integer

k = InStr(objIE2.document.body.innerHTML, “【図1】”)
temp = Mid(objIE2.document.body.innerHTML, k)

temp = Replace(temp, “src=” & Chr$(&H22) & “/gazette”, “src=” & Chr$(&H22) & “https://www.j-platpat.inpit.go.jp/gazette”)

13.「経過情報」を入手

ここからは、少しややこしい処理になるが、経過情報および審査記録などの各種書類の入手処理について示す。この処理は、いろいろな公報の経過情報ページを開き、そのソースを眺め、試行錯誤を繰り返しながら、どうにか思ったような結果が得られる処理手順を見つけたもので、あまりきれいな処理とは言えない。この処理を行うやり方は他にも色々とあるだろうと思うし、もっとずっとエレガントな処理方法があるのではないかと思うので、ここにあげたやり方を参考に、各自でより良い方法を考えて欲しい。

まずは、下図に示すように、「書誌」「要約」「請求の範囲」「詳細な説明」および「図面」を入手した「文献表示」ページにおいて、⑧で示した「経過情報」のボタンを探し、これをクリックすることで、「経過情報表示」ページを開く(このページは新たなウィンドウ(タブ)で開く)。この処理は、固定URLを表示させるために行った「URL」ボタンのクリック処理と同様である。


For Each objtag In objIE2.document.getElementsByTagName(“a”)
      If InStr(objtag.outerHTML, “経過情報”) > 0 Then
            objtag.Click
            Exit For
      End If
Next

Set objtag = Nothing

上の操作によって表示される下図に示す「経過情報表示」ページは新たなウィンドウがタブで開き、「経過記録」のページが表示されているので、これをオブジェクト objIE3 に取り込んでやる。


Dim objIE3 As InternetExplorer
Dim shl As Object
Dim win As Object
Dim targetTitle As String

flag = 0
i = 1
targetTitle = “経過情報表示”

Do While flag = 0 And i < 300
      For Each win In shl.Windows
            DoEvents
            If win.Name = “Internet Explorer” Then
                  If InStr(win.document.title, targetTitle) > 0 Then
                        Set objIE3 = win
                        flag = 1
                        Exit For
                  End If
            End If
      Next
      Application.Wait [Now()] + 100 / 86400000
      i = i + 1
Loop

これにより「経過記録」のページが objIE3 に取り込まれたので、objIE3.document.body.innerHTML をファイルに書き込むなり、変数に取り込むなりすれば、その後、このページ内容に対してさらなる操作が可能となる。(実際には、次の処理を行う前に、ここでページの読み込みが完了したことを確認する処理が必要となるが、省略する。例えば「明細書」という文言が表示されるのを待つ等。)

次に、このページにて、「拒絶理由通知書」や「意見書」などの各書類の内容を取得しようとすると、ここまでとは少し異なる結構処理が必要となる。これについては、長くなりそうなので、新たな記事を立てて説明することにしたい。

一方で、このページには「経過記録」の他に、⑨で示すように「出願情報」、「登録情報」、「審判情報」および「分割出願情報」のページが開くリンクが表示されている。(経過記録と出願情報は全ての公報について表示されるが、その他のページは該当情報が存在している公報でのみ表示される。)ここでは、これらをクリックして「出願情報」や「登録情報」などのページを表示させる方法について示す。

例えば「出願情報」を開くには、「出願情報」というリンク⑨をクリックすればよいのだが、このページの関連部分のソースを見てみると、

<div class=”type_tab ng-star-inserted” _ngcontent-wdl-c420=””>
      <span _ngcontent-wdl-c420=””>出願情報</span>
</div>

となっており、このリンクは通常のAタグではなく、SPANタグとなっている。とはいえ、Aタグの処理の時と同様にSPANタグをクリックすることで、無事に所望のページが開くので、例えば「出願情報」をクリックする操作は、次のようになる。

For Each objtag In objIE3.document.getElementsByTagName(“span”)
      If InStr(objtag.outerHTML, “出願情報”) > 0 Then
            objtag.Click
            Exit For
      End If
Next

Set objtag = Nothing

Do While objIE3.readyState <> 4 Or objIE.Busy
      DoEvents
Loop

この操作により表示される「出願情報」のページは、今まで「経過記録」が表示されていたページを書き換える形で開くので、オブジェクト objIE3 に取り込まれる。従って、特段の操作は必要なく、objIE3.document.body.innerHTMLを読み込むことで必要な情報が入手できる。

さらに、これと同様の処理によって、「登録情報」「審判情報」「分割出願情報」の各ページを開き、内容を読み込むことができる。(「出願情報」「登録情報」「審判情報」は、基本的に文字のみがhtmlのTable形式で表示されているページなので、単純にテキストとして処理できるが、「分割出願情報」は、各出願の間の関係が図示されており、そのまま内容をコピーして表示させると、公報番号などが黒塗りされたりしてうまく表示できないので、うまく表示させるためには工夫が必要なようだ。)