VBSで商標検索

J-PlatPatにアクセスして商標を検索することができるVBSを作成しました。

使用する際には、メモ帳等にコピペし、ファイルの拡張子をVBSにします。

商標の検索方法(VBS) のページもご参照ください。

Option Explicit
Const strIE = "iexplore.exe"
Dim searchWord
Dim similarCode
Dim wtime

'待機時間を設定します(ミリ秒)
wtime = 50

'称呼と類似群コードを入力します
searchWord = InputBox("称呼を全角カナで入力してください。" & vbCr & "例:トッキョチョー")
similarCode = InputBox("(任意入力)類似群コードを半角英数で入力してください。" & vbCr & "例:29B01")

'キーワードが空でなければ処理を開始します
If searchWord <> "" Then

    Dim ws
    Set ws = WScript.CreateObject("Wscript.Shell")
    
    'IEでJPlatPat商標検索にアクセス
    Dim ie
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Navigate "https://www.j-platpat.inpit.go.jp/t0100"
    ie.Visible = True
    waitIE ie
    
    'プロセスIDを取得し、IEをアクティブにします
    Dim locater, connect, instances, instance
    Dim PID
    Set locater = CreateObject("WbemScripting.SWbemLocator")
    Set connect = locater.ConnectServer
    Set instances = connect.InstancesOf("Win32_Process")
    
    For Each instance In instances
        If Not IsEmpty(instance.processID) And instance.Description = "iexplore.exe" Then
            PID = instance.processID
        End If
    Next
    
    Set locater = Nothing
    Set instances = Nothing
    Set connect = Nothing
    
    While Not ws.AppActivate(PID)
        WScript.Sleep wtime
    Wend
    
    '検索項目を「称呼(類似検索)」にセットします
    ie.Document.getElementById("t01_srchCondtn_mk_selSearchItem1").Click
    
    WScript.Sleep wtime
    ws.SendKeys "{DOWN}"
    WScript.Sleep wtime
    ws.SendKeys "{ENTER}"
    waitIE ie
        
    'キーワードをセットします
    ie.Document.getElementById("t01_srchCondtn_mk_txtKeywd1").Click
    ie.Document.getElementById("t01_srchCondtn_mk_txtKeywd1").Focus
    ie.Document.getElementById("t01_srchCondtn_mk_txtKeywd1").Value = searchWord
    
    WScript.Sleep wtime
    ws.SendKeys "{ENTER}"
    waitIE ie
    
    '類似群コードの入力があるときセットします
    If similarCode <> "" Then
        ie.Document.getElementById("t01_srchCondtn_goods_selSearchItem0").Click
        
        WScript.Sleep wtime
        ws.SendKeys "{ENTER}"
        waitIE ie
        
        ie.Document.getElementById("t01_srchCondtn_goods_txtKeywd0").Click
        ie.Document.getElementById("t01_srchCondtn_goods_txtKeywd0").Focus
        ie.Document.getElementById("t01_srchCondtn_goods_txtKeywd0").Value = similarCode
        
        WScript.Sleep wtime
        ws.SendKeys "{ENTER}"
        waitIE ie
    End If
    
    '検索ボタンをクリック
    ie.Document.getElementById("t01_srchBtn_btnSearch").Click
    
    Set ie = Nothing
    Set ws = Nothing
End If

Sub waitIE(ie)
'アクセス完了まで待機
Do While ie.Busy = True Or ie.readystate <> 4
    WScript.Sleep 50
Loop
End Sub

このVBSは、インターネットエクスプローラ(IE)を使用します。

VBSでは、開いたIEが自動的にアクティブにならないため、プロセスIDを指定してIEをアクティブにする処理をします。

IEを操作する際には、操作対象のIDを取得し、クリック等の操作をすることが望ましいです。しかし、リストボックスになっている部分について、IDを取得することができなかったため、SendKeysコマンドを使用して[DOWN][ENTER]キーをIEに送信し、検索項目を「 称呼(類似検索) 」にセットしています。 SendKeysコマンド の部分を修正すれば、別の検索項目に変更することも可能です。

また、SendKeysを使用する際、タイミングを調整しないと不安定になるため、随所に WScript.Sleep コマンドで所定時間(50ミリ秒)待機するようにしています。動作が不安定なときは、待機時間を大きくしてください。