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)” といった形で文書名にカウントを付加することで区別するような工夫をすればよいだろう。