スクリプト実例・各種スクリプトでブラウザを操作 [UWSC] [VBScript] [JScript] [IE6] [Sleipnir1] [Sleipnir2]

同じ処理を複数のブラウザと複数のスクリプト言語で書き比べてみました。
バグがありましたら、ご指摘いただけると助かります。特に、VBScript、JScript は動作確認こそしているものの、自信がありません。

[Sleipnir V2.xx の準備] Sleipnir -[ツール][Sleipnirオプション][クライアント][全般][スクリプトによるクライアントの操作を許可する]にチェックを付ける。

[Sleipnir V1.xx の準備] Sleipnir -[ツール][Sleipnirオプション][スクリプト][スクリプトによる Sleipnir の操作を許可する] にチェック付ける。

[注意] Sleipnirのスクリプトでは、Sleipnir をタスクトレイに入れる設定が無効であることを前提にしています。

[動作確認ソフト]
UWSC V4.341 (Pro) | VBScript 5.6 | JScript V5.6.8831 | WinXPHome SP2
IE 6.0.2900.2180 SP2 | Sleipnir V2.5.17 ビルド2517400 | Sleipnir V1.66
2007/11/01(眠)
スクリプト内の全角スペースを半角スペースに変換 2007/11/23(眠)

[UWSC][IE] :: RecIEの結果
[UWSC][IE] :: IE系関数
[UWSC][IE] :: COM(IE系関数なし)
[UWSC][Sleipnir1] :: ドキュメント・オブジェクト :: COM
[UWSC][Sleipnir1] :: InternetExplorer.Applicationオブジェクト :: COM(IE系関数なし)
[UWSC][Sleipnir1] :: InternetExplorer.Applicationオブジェクト :: IE系関数
[UWSC][Sleipnir2] :: ドキュメント・オブジェクト :: COM
[UWSC][Sleipnir2] :: InternetExplorer.Applicationオブジェクト :: COM(IE系関数なし)
[UWSC][Sleipnir2] :: InternetExplorer.Applicationオブジェクト :: IE系関数
[VBScript][IE] :: COM
[VBScript][Sleipnir1] :: ドキュメント・オブジェクト :: COM
[VBScript][Sleipnir1] :: InternetExplorer.Application オブジェクト :: COM
[VBScript][Sleipnir2] :: ドキュメント・オブジェクト :: COM
[VBScript][Sleipnir2] :: InternetExplorer.Application オブジェクト :: COM
[JScript][IE] :: COM
[JScript][Sleipnir1] :: ドキュメント・オブジェクト
[JScript][Sleipnir1] :: InternetExplorer.Application オブジェクト :: COM
[JScript][Sleipnir2] :: ドキュメント・オブジェクト
[JScript][Sleipnir2] :: InternetExplorer.Application オブジェクト :: COM
// 01UwIe6Rec.uws
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [UWSC][IE] :: RecIEの結果
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("http://www.google.co.jp/")
BusyWait(IE)
IESetData(IE,"UWSC","q") // TEXT
IE.Navigate("http://www.google.co.jp/search?hl=ja&q=UWSC&lr=") // INPUT
BusyWait(IE)
IELink(IE,"UWSC") // http://www.uwsc.info/
BusyWait(IE)
// IE.Quit // IE終了
//------
Procedure BusyWait(ie)
  Sleep(0.5)  // Wait
  Const TIME_OUT = 90
  tm = Gettime()
  repeat
    Sleep(0.2)
    ifb Gettime() - tm > TIME_OUT
      MsgBox("Time Out:BusyWait")
      ExitExit
    endif
  until (! ie.busy) and (ie.readyState=4)
  Sleep(0.5)
Fend

// 02UwIe6Iefnc.uws
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [UWSC][IE] :: IE系関数
option explicit
dim objIE
dim strWord="UWSC"
objIE=CreateOLEObj("InternetExplorer.Application")
objIE.Visible=True
objIE.Navigate("http://www.google.co.jp/")
BusyWait(objIE)
IESetData(objIE,strWord,"q")
IESetData(objIE,True,"btnG","Google 検索")
BusyWait(objIE)
IELink(objIE,strWord)
BusyWait(objIE)
//------
Procedure BusyWait(ie)
    Sleep(0.5); repeat; Sleep(0.2); until (! ie.busy) and (ie.readyState=4); Sleep(0.5)
Fend


// 03UwIe6Com.uws
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [UWSC][IE] :: COM(IE系関数なし)
option explicit
dim objIE
dim strWord="UWSC"
objIE=CreateOLEObj("InternetExplorer.Application")
objIE.Visible=True
objIE.Navigate("http://www.google.co.jp/")
BusyWait(objIE)
objIe.document.f.q.value=strWord
objIe.document.f.btnG.click()
BusyWait(objIe)
IELinkX(objIe,strWord,TRUE)
BusyWait(objIe)

//------
// 指定したリンク文字列を選ぶ
// (入力値)objIe    IEオブジェクト
// (入力値)string1    リンク文字列
// (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
// (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
//------
Function IELinkX(objIe,string1,flgP=FALSE)
    dim i
    result=FALSE
    // 完全一致を探す
    for i=0 to objIe.document.links.length-1
        ifb string1=objIe.document.links(i).innerText
            objIe.Navigate(objIe.document.links(i).href)
            result=TRUE; exit
        endif
    next
    // 部分一致を探す
    ifb flgP
        for i=0 to objIe.document.links.length-1
            ifb 0<pos(string1,objIe.document.links(i).innerText)
                objIe.Navigate(objIe.document.links(i).href)
                result=TRUE; exit
            endif
        next
    endif
FEnd

//------
Procedure BusyWait(objIe)
    Sleep(0.5); repeat; Sleep(0.2); until (! objIe.busy) and (objIe.readyState=4);  Sleep(0.5)
FEnd

// 04UwSp1Objdoc.uws
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [UWSC][Sleipnir1] :: ドキュメント・オブジェクト :: COM
option explicit
const SLEIPNIR_EXE="d:\Prg\sleipnir\Sleipnir.exe"        // Sleipnir.exe のフルパスを指定
dim objSp,objDocId,objDoc
dim strWord="UWSC"
ifb !fopen(SLEIPNIR_EXE, F_EXISTS); msgbox(SLEIPNIR_EXE+" が見つかりません。"); exitexit; endif
doscmd(SLEIPNIR_EXE,TRUE)                                // exec(SLEIPNIR_EXE) でも可
repeat; sleep(0.01); until 0<getid("Sleipnir","Afx:400000")
objSp=CreateOLEObj("Sleipnir.API")
objDocId=objSp.NewWindow("http://www.google.co.jp/",true)
waitBusySp(objSp,objDocId)
objDoc=objSp.GetDocumentObject(objDocId)
while (NOTHING=objDoc); sleep(0.01); wend
objDoc.f.q.value=strWord
objDoc.f.btnG.click()
waitBusySp(objSp,objDocId)
documentLink(objDoc,strWord,TRUE)
waitBusySp(objSp,objDocId)

//------
// 指定したリンク文字列を選ぶ
// (入力値)objDoc    ドキュメントオブジェクト
// (入力値)string1    リンク文字列
// (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
// (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
//------
Function documentLink(objDoc,string1,flgP=FALSE)
    dim i
    result=FALSE
    // 完全一致を探す
    for i=0 to objDoc.links.length-1
        ifb string1=objDoc.links(i).innerText
            objDoc.links(i).click()
            result=TRUE; exit
        endif
    next
    // 部分一致を探す
    ifb flgP
        for i=0 to objDoc.links.length-1
            ifb 0<pos(string1,objDoc.links(i).innerText)
                objDoc.links(i).click()
                result=TRUE; exit
            endif
        next
    endif
FEnd

//------
Procedure waitBusySp(objSp,objDocId)
    Sleep(0.5); repeat;  sleep(0.2);  until (!objSp.isbusy(objDocId)); Sleep(0.5)
FEnd

// 05UwSp1ObjIe.uws
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [UWSC][Sleipnir1] :: InternetExplorer.Applicationオブジェクト :: COM(IE系関数なし)
option explicit
const SLEIPNIR_EXE="d:\Prg\sleipnir\Sleipnir.exe"        // Sleipnir.exe のフルパスを指定
dim objSp,objDocId,objIe
dim strWord="UWSC"
ifb !fopen(SLEIPNIR_EXE, F_EXISTS); msgbox(SLEIPNIR_EXE+" が見つかりません。"); exitexit; endif
doscmd(SLEIPNIR_EXE,TRUE)                                // exec(SLEIPNIR_EXE) でも可
repeat; sleep(0.01); until 0<getid("Sleipnir","Afx:400000")
objSp=CreateOLEObj("Sleipnir.API")
objDocId=objSp.NewWindow("about:blank", TRUE)
while (0>objSp.ActiveIndex); sleep(0.01); wend
objIe=objSp.GetWebBrowserObject(objDocId)
// ここからはIEの操作と同様
objIe.Navigate("http://www.google.co.jp/")
BusyWait(objIE)
objIe.document.f.q.value=strWord
objIe.document.f.btnG.click()
BusyWait(objIe)
IELinkX(objIe,strWord,TRUE)
BusyWait(objIe)

//------
// 指定したリンク文字列を選ぶ
// (入力値)objIe    IEオブジェクト
// (入力値)string1    リンク文字列
// (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
// (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
//------
Function IELinkX(objIe,string1,flgP=FALSE)
    dim i
    result=FALSE
    // 完全一致を探す
    for i=0 to objIe.document.links.length-1
        ifb string1=objIe.document.links(i).innerText
            objIe.Navigate(objIe.document.links(i).href)
            result=TRUE; exit
        endif
    next
    // 部分一致を探す
    ifb flgP
        for i=0 to objIe.document.links.length-1
            ifb 0<pos(string1,objIe.document.links(i).innerText)
                objIe.Navigate(objIe.document.links(i).href)
                result=TRUE; exit
            endif
        next
    endif
FEnd

//------
Procedure BusyWait(ie)
    Sleep(0.5); repeat; Sleep(0.2); until (! ie.busy) and (ie.readyState=4); Sleep(0.5)
Fend

// 06UwSp1Iefnc.uws
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [UWSC][Sleipnir1] :: InternetExplorer.Applicationオブジェクト :: IE系関数
option explicit
const SLEIPNIR_EXE="d:\Prg\sleipnir\Sleipnir.exe"        // Sleipnir.exe のフルパスを指定
dim objSp,objDocId,objDoc,objIe
dim strWord="UWSC"
ifb !fopen(SLEIPNIR_EXE, F_EXISTS); msgbox(SLEIPNIR_EXE+" が見つかりません。"); exitexit; endif
doscmd(SLEIPNIR_EXE,TRUE)                // exec(SLEIPNIR_EXE) でも可
repeat; sleep(0.01); until 0<getid("Sleipnir","Afx:400000")
objSp=CreateOLEObj("Sleipnir.API")
objDocId=objSp.NewWindow("about:blank", TRUE)
while (0>objSp.ActiveIndex); sleep(0.01); wend
objIe=objSp.GetWebBrowserObject(objDocId)
// ここからはIEの操作と同様
objIe.Navigate("http://www.google.co.jp/")
BusyWait(objIE)
IESetData(objIE,strWord,"q")
IESetData(objIE,True,"btnG","Google 検索")
BusyWait(objIE)
IELink(objIE,strWord)
BusyWait(objIE)

//------
Procedure BusyWait(ie)
    Sleep(0.5); repeat; Sleep(0.2); until (! ie.busy) and (ie.readyState=4); Sleep(0.5)
Fend

// 07UwSp2Objdoc.uws
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [UWSC][Sleipnir2] :: ドキュメント・オブジェクト :: COM
option explicit
dim objSp,objDocId,objDoc
dim strWord="UWSC"
objSp=CreateOLEObj("Sleipnir.API")
while (0>objSp.ActiveIndex); sleep(0.01); wend
objDocId=objSp.GetDocumentID(objSp.ActiveIndex)
while (1>val(objDocId)); sleep(0.01); wend
objSp.Navigate(objDocId, "http://www.google.co.jp/")
waitBusySp(objSp,objDocId)
objDoc=objSp.GetDocumentObject(objDocId)
while (NOTHING=objDoc); sleep(0.01); wend
objDoc.f.q.value=strWord
objDoc.f.btnG.click()
waitBusySp(objSp,objDocId)
documentLink(objDoc,strWord,TRUE)
waitBusySp(objSp,objDocId)

//------
// 指定したリンク文字列を選ぶ
// (入力値)objDoc    ドキュメントオブジェクト
// (入力値)string1    リンク文字列
// (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
// (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
//------
Function documentLink(objDoc,string1,flgP=FALSE)
    dim i
    result=FALSE
    // 完全一致を探す
    for i=0 to objDoc.links.length-1
        ifb string1=objDoc.links(i).innerText
            objDoc.links(i).click()
            result=TRUE; exit
        endif
    next
    // 部分一致を探す
    ifb flgP
        for i=0 to objDoc.links.length-1
            ifb 0<pos(string1,objDoc.links(i).innerText)
                objDoc.links(i).click()
                result=TRUE; exit
            endif
        next
    endif
FEnd

//------
Procedure waitBusySp(objSp,objDocId)
    Sleep(0.5); repeat;  sleep(0.2);  until (!objSp.isbusy(objDocId)); Sleep(0.5)
FEnd

// 08UwSp2ObjIe.uws
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [UWSC][Sleipnir2] :: InternetExplorer.Applicationオブジェクト :: COM(IE系関数なし)
option explicit
dim objSp,objIe
dim strWord="UWSC"
objSp=CreateOLEObj("Sleipnir.API")
while (0>objSp.ActiveIndex); sleep(0.01); wend
objIe=objSp.GetWebBrowserObject(objSp.GetDocumentID(objSp.ActiveIndex))
// ここからはIEの操作と同様
objIe.Navigate("http://www.google.co.jp/")
BusyWait(objIE)
objIe.document.f.q.value=strWord
objIe.document.f.btnG.click()
BusyWait(objIe)
IELinkX(objIe,strWord,TRUE)
BusyWait(objIe)

//------
// 指定したリンク文字列を選ぶ
// (入力値)objIe    IEオブジェクト
// (入力値)string1    リンク文字列
// (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
// (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
//------
Function IELinkX(objIe,string1,flgP=FALSE)
    dim i
    result=FALSE
    // 完全一致を探す
    for i=0 to objIe.document.links.length-1
        ifb string1=objIe.document.links(i).innerText
            objIe.Navigate(objIe.document.links(i).href)
            result=TRUE; exit
        endif
    next
    // 部分一致を探す
    ifb flgP
        for i=0 to objIe.document.links.length-1
            ifb 0<pos(string1,objIe.document.links(i).innerText)
                objIe.Navigate(objIe.document.links(i).href)
                result=TRUE; exit
            endif
        next
    endif
FEnd

//------
Procedure BusyWait(ie)
    Sleep(0.5); repeat; Sleep(0.2); until (! ie.busy) and (ie.readyState=4); Sleep(0.5)
Fend

// 09UwSp2Iefnc.uws
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [UWSC][Sleipnir2] :: InternetExplorer.Applicationオブジェクト :: IE系関数
option explicit
dim objSp,objIe
dim strWord="UWSC"
objSp=CreateOLEObj("Sleipnir.API")
while (0>objSp.ActiveIndex); sleep(0.01); wend
objIe=objSp.GetWebBrowserObject(objSp.GetDocumentID(objSp.ActiveIndex))
// ここからはIEの操作と同様
objIe.Navigate("http://www.google.co.jp/")
BusyWait(objIE)
IESetData(objIE,strWord,"q")
IESetData(objIE,True,"btnG","Google 検索")
BusyWait(objIE)
IELink(objIE,strWord)
BusyWait(objIE)

//------
Procedure BusyWait(ie)
    Sleep(0.5); repeat; Sleep(0.2); until (! ie.busy) and (ie.readyState=4); Sleep(0.5)
Fend

' 31VbIe6Com.vbs
' 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
' [VBScript][IE] :: COM
option explicit
dim strWord
dim objIe
strWord="UWSC"
set objIe=WScript.CreateObject("InternetExplorer.Application")
objIe.Visible=True
objIe.Navigate("http://www.google.co.jp/")
BusyWait(objIe)
objIe.document.f.q.value=strWord
objIe.document.f.btnG.click()
BusyWait(objIe)
IELinkX objIe,strWord,TRUE
BusyWait(objIe)
WScript.Quit(0)

'------
' 指定したリンク文字列を選ぶ
' (入力値)objIe    IEオブジェクト
' (入力値)string1    リンク文字列
' (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
' (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
'------
Function IELinkX(objIe,string1,flgP)
    dim i
    IELinkX=FALSE
    ' 完全一致を探す
    for i=0 to objIe.document.links.length-1
        If string1=objIe.document.links(i).innerText Then
            objIe.Navigate(objIe.document.links(i).href)
            IELinkX=TRUE: Exit Function
        End If
    next
    ' 部分一致を探す
    If flgP Then
        for i=0 to objIe.document.links.length-1
            If 0<InStr(1,objIe.document.links(i).innerText,string1,1) Then
                objIe.Navigate(objIe.document.links(i).href)
                IELinkX=TRUE: Exit Function
            End If
        next
    End If
End Function

'------
Sub BusyWait(objIe)
    With WScript: .Sleep(500): Do: .Sleep(200): Loop Until (NOT objIe.busy) AND (objIe.readyState=4): .Sleep(500): End With
End Sub

' 32VbSp1Objdoc.vbs
' 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
' [VBScript][Sleipnir1] :: ドキュメント・オブジェクト :: COM
option explicit
const SLEIPNIR_EXE="d:\Prg\sleipnir\Sleipnir.exe"        ' Sleipnir.exe のフルパスを指定
dim strWord
dim objSp,objDocId,objDoc,objIe,objWs
strWord="UWSC"
If NOT WScript.CreateObject("Scripting.FileSystemObject").FileExists(SLEIPNIR_EXE) Then
    MsgBox SLEIPNIR_EXE+" が見つかりません。": WScript.Quit
End If
set objWs=WScript.CreateObject("WSCript.shell")
objWs.run SLEIPNIR_EXE, 1, FALSE
While (Not objWs.AppActivate("Sleipnir")): WScript.sleep(1): Wend
set objSp=WScript.CreateObject("Sleipnir.API")
objDocId=objSp.NewWindow("about:blank", TRUE)
While (0>objSp.ActiveIndex): WScript.Sleep(1): Wend
objSp.Navigate objDocId, "http://www.google.co.jp/"
waitBusySp objSp,objDocId
set objDoc=objSp.GetDocumentObject(objDocId)
while (NULL=objDoc): WScript.Sleep(1): Wend
' ここからはIEの操作と同様
objDoc.f.q.value=strWord
objDoc.f.btnG.click()
waitBusySp objSp,objDocId
documentLink objDoc,strWord,TRUE
waitBusySp objSp,objDocId
WScript.Quit(0)

'------
' 指定したリンク文字列を選ぶ
' (入力値)objDoc    IEオブジェクト
' (入力値)string1    リンク文字列
' (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
' (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
'------
Function documentLink(objDoc,string1,flgP)
    dim i
    documentLink=FALSE
    ' 完全一致を探す
    for i=0 to objDoc.links.length-1
        If string1=objDoc.links(i).innerText Then
            objDoc.links(i).click()
            documentLink=TRUE: Exit Function
        End If
    next
    ' 部分一致を探す
    If flgP Then
        for i=0 to objDoc.links.length-1
            If 0<InStr(1,objDoc.links(i).innerText,string1,1) Then
                objDoc.links(i).click()
                documentLink=TRUE: Exit Function
            End If
        next
    End If
End Function

'------
Sub waitBusySp(objSp,objDocId)
    With WScript: .Sleep(500): Do: .sleep(200): Loop Until (NOT objSp.isbusy(objDocId)): .Sleep(200): End With
End sub

' 33VbSp1Objie.vbs
' 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
' [VBScript][Sleipnir1] :: InternetExplorer.Application オブジェクト :: COM
option explicit
const SLEIPNIR_EXE="d:\Prg\sleipnir\Sleipnir.exe"        ' Sleipnir.exe のフルパスを指定
dim strWord
dim objSp,objDocId,objIe,objWs
strWord="UWSC"
If NOT WScript.CreateObject("Scripting.FileSystemObject").FileExists(SLEIPNIR_EXE) Then
    MsgBox SLEIPNIR_EXE+" が見つかりません。": WScript.Quit
End If
set objWs=WScript.CreateObject("WScript.shell")
objWs.run SLEIPNIR_EXE, 1, FALSE
While (Not objWs.AppActivate("Sleipnir")): WScript.sleep(1): Wend
set objSp=WScript.CreateObject("Sleipnir.API")
objDocId=objSp.NewWindow("about:blank", TRUE)
While (0>objSp.ActiveIndex): WScript.Sleep(2): Wend
set objIe=objSp.GetWebBrowserObject(objDocId)
' ここからはIEの操作と同様
objIe.Navigate("http://www.google.co.jp/")
BusyWait(objIe)
objIe.document.f.q.value=strWord
objIe.document.f.btnG.click()
BusyWait(objIe)
IELinkX objIe,strWord,TRUE
BusyWait(objIe)
WScript.Quit(0)

'------
' 指定したリンク文字列を選ぶ
' (入力値)objIe    IEオブジェクト
' (入力値)string1    リンク文字列
' (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
' (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
'------
Function IELinkX(objIe,string1,flgP)
    dim i
    IELinkX=FALSE
    ' 完全一致を探す
    for i=0 to objIe.document.links.length-1
        If string1=objIe.document.links(i).innerText Then
            objIe.Navigate(objIe.document.links(i).href)
            IELinkX=TRUE: Exit Function
        End If
    next
    ' 部分一致を探す
    If flgP Then
        for i=0 to objIe.document.links.length-1
            If 0<InStr(1,objIe.document.links(i).innerText,string1,1) Then
                objIe.Navigate(objIe.document.links(i).href)
                IELinkX=TRUE: Exit Function
            End If
        next
    End If
End Function

'------
Sub BusyWait(objIe)
    With WScript: .Sleep(500): Do: .Sleep(200): Loop Until (NOT objIe.busy) AND (objIe.readyState=4): .Sleep(500): End With
End Sub

' 34VbSp2Objdoc.vbs
' 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
' [VBScript][Sleipnir2] :: ドキュメント・オブジェクト :: COM
option explicit
dim strWord
dim objSp,objDocId,objDoc,objIe
strWord="UWSC"
set objSp=WScript.CreateObject("Sleipnir.API")
While (0>objSp.ActiveIndex): WScript.Sleep(1): Wend
objDocId=objSp.GetDocumentID(objSp.ActiveIndex)
while (NULL=objDocId): WScript.Sleep(1): Wend
objSp.Navigate objDocId, "http://www.google.co.jp/"
waitBusySp objSp,objDocId
set objDoc=objSp.GetDocumentObject(objDocId)
' ここからはIEの操作と同様
while (NULL=objDoc): WScript.Sleep(2): Wend
objDoc.f.q.value=strWord
objDoc.f.btnG.click()
waitBusySp objSp,objDocId
documentLink objDoc,strWord,TRUE
waitBusySp objSp,objDocId
WScript.Quit(0)

'------
' 指定したリンク文字列を選ぶ
' (入力値)objDoc    IEオブジェクト
' (入力値)string1    リンク文字列
' (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
' (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
'------
Function documentLink(objDoc,string1,flgP)
    dim i
    documentLink=FALSE
    ' 完全一致を探す
    for i=0 to objDoc.links.length-1
        If string1=objDoc.links(i).innerText Then
            objDoc.links(i).click()
            documentLink=TRUE: Exit Function
        End If
    next
    ' 部分一致を探す
    If flgP Then
        for i=0 to objDoc.links.length-1
            If 0<InStr(1,objDoc.links(i).innerText,string1,1) Then
                objDoc.links(i).click()
                documentLink=TRUE: Exit Function
            End If
        next
    End If
End Function

'------
Sub waitBusySp(objSp,objDocId)
    With WScript: .Sleep(500): Do: .sleep(200): Loop Until (NOT objSp.isbusy(objDocId)): .Sleep(200): End With
End sub

' 35VbSp2Objie.vbs
' 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
' [VBScript][Sleipnir2] :: InternetExplorer.Application オブジェクト :: COM
option explicit
dim strWord
dim objSp,objIe
strWord="UWSC"
set objSp=WScript.CreateObject("Sleipnir.API")
While (0>objSp.ActiveIndex): WScript.Sleep(1): Wend
set objIe=objSp.GetWebBrowserObject(objSp.GetDocumentID(objSp.ActiveIndex))
' ここからはIEの操作と同様
objIe.Navigate("http://www.google.co.jp/")
BusyWait(objIe)
objIe.document.f.q.value=strWord
objIe.document.f.btnG.click()
BusyWait(objIe)
IELinkX objIe,strWord,TRUE
BusyWait(objIe)
WScript.Quit(0)

'------
' 指定したリンク文字列を選ぶ
' (入力値)objIe    IEオブジェクト
' (入力値)string1    リンク文字列
' (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
' (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
'------
Function IELinkX(objIe,string1,flgP)
    dim i
    IELinkX=FALSE
    ' 完全一致を探す
    for i=0 to objIe.document.links.length-1
        If string1=objIe.document.links(i).innerText Then
            objIe.Navigate(objIe.document.links(i).href)
            IELinkX=TRUE: Exit Function
        End If
    next
    ' 部分一致を探す
    If flgP Then
        for i=0 to objIe.document.links.length-1
            If 0<InStr(1,objIe.document.links(i).innerText,string1,1) Then
                objIe.Navigate(objIe.document.links(i).href)
                IELinkX=TRUE: Exit Function
            End If
        next
    End If
End Function

'------
Sub BusyWait(objIe)
    With WScript: .Sleep(500): Do: .Sleep(200): Loop Until (NOT objIe.busy) AND (objIe.readyState=4): .Sleep(500): End With
End Sub

// 51JsIe6Com.js
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [JScript][IE] :: COM
var strWord="UWSC"
var objIe
objIe=new ActiveXObject("InternetExplorer.Application");
objIe.Visible=true
objIe.Navigate("http://www.google.co.jp/")
BusyWait(objIe)
objIe.document.f.q.value=strWord;
objIe.document.f.btnG.click();
BusyWait(objIe);
IELinkX(objIe,strWord,1)
BusyWait(objIe);
WScript.Quit (0);

//------
// 指定したリンク文字列を選ぶ
// (入力値)objIe    IEオブジェクト
// (入力値)string1    リンク文字列
// (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
// (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
//------
function IELinkX(objIe,string1,flgP){
    var i;
    // 完全一致を探す
    for(i=0; i<objIe.document.links.length; i++){
        if(string1==objIe.document.links(i).innerText){
            objIe.Navigate(objIe.document.links(i).href);
            return(true);
        }
    }
    // 部分一致を探す
    if (flgP){
        for(i=0; i<objIe.document.links.length; i++){
            string2=objIe.document.links(i).innerText
            if(0<=string2.indexOf(string1)){
                objIe.Navigate(objIe.document.links(i).href);
                return(true);
            }
        }
    }
    return(false);
}
//------
function BusyWait(objIe){
    WScript.Sleep(200);
    do {
        WScript.Sleep(500);
    } while ((objIe.busy) || (objIe.readyState!=4));
    WScript.Sleep(200);
}

// 52JsSp1Objdoc.js
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [JScript][Sleipnir1] :: ドキュメント・オブジェクト
var SLEIPNIR_EXE="d:\\Prg\\sleipnir\\Sleipnir.exe"        // Sleipnir.exe のフルパスを指定
var strWord="UWSC"
var objSp,objDocId,objDoc,objIe,objWs
if(true!=new ActiveXObject("Scripting.FileSystemObject").FileExists(SLEIPNIR_EXE)){
    WScript.echo(SLEIPNIR_EXE+" が見つかりません。"); WScript.Quit(0);
}
objWs=new ActiveXObject("WSCript.shell")
objWs.run(SLEIPNIR_EXE, 1, false);
while (true!=objWs.AppActivate("Sleipnir")){  WScript.sleep(1);  }
objSp=new ActiveXObject("Sleipnir.API");
objDocId=objSp.NewWindow("http://www.google.co.jp/",true)
while (0>objSp.ActiveIndex){  WScript.Sleep(1);  }
waitBusySp(objSp,objDocId)
objDoc=objSp.GetDocumentObject(objDocId)
if (objDoc==null){  objSp.MessageBox("ドキュメント・オブジェクトを作成できません。");  WScript.Quit(0);  }
objDoc.f.q.value=strWord;
objDoc.f.btnG.click();
waitBusySp(objSp,objDocId)
documentLink(objDoc,strWord,true);
waitBusySp(objSp,objDocId)
WScript.Quit(0);

//------
// 指定したリンク文字列を選ぶ
// (入力値)objDoc    ドキュメント・オブジェクト
// (入力値)string1    リンク文字列
// (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
// (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
//------
function documentLink(objDoc,string1,flgP){
    var string2
    var i;
    // 完全一致を探す
    for(i=0; i<objDoc.links.length; i++){
        if(string1==objDoc.links(i).innerText){
            objDoc.links(i).click()
            return(true);
        }
    }
    // 部分一致を探す
    if (flgP){
        for(i=0; i<objDoc.links.length; i++){
            string2=objDoc.links(i).innerText
            if(0<=string2.indexOf(string1)){
                objDoc.links(i).click()
                return(true);
            }
        }
    }
    return(false);
}
//------
function waitBusySp(objSp,objDocId){
    WScript.Sleep(200);
    do {
        WScript.Sleep(500);
    } while (objSp.isbusy(objDocId));
    WScript.Sleep(200);
}

// 53JsSp1Objie.js
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [JScript][Sleipnir1] :: InternetExplorer.Application オブジェクト :: COM
var SLEIPNIR_EXE="d:\\Prg\\sleipnir\\Sleipnir.exe"        // Sleipnir.exe のフルパスを指定
var strWord="UWSC"
var objSp,objDocId,objIe,objWs
if(true!=new ActiveXObject("Scripting.FileSystemObject").FileExists(SLEIPNIR_EXE)){
    WScript.echo(SLEIPNIR_EXE+" が見つかりません。"); WScript.Quit(0);
}
objWs=new ActiveXObject("WScript.shell")
objWs.run(SLEIPNIR_EXE, 1, false);
while (true!=objWs.AppActivate("Sleipnir")){  WScript.sleep(1);  }
objSp=new ActiveXObject("Sleipnir.API");
objDocId=objSp.NewWindow("about:blank",true);
while (0>objSp.ActiveIndex){  WScript.Sleep(1);  }
objIe=objSp.GetWebBrowserObject(objDocId);
objIe.Navigate("http://www.google.co.jp/");
busyWait(objIe);
objIe.document.f.q.value=strWord;
objIe.document.f.btnG.click();
busyWait(objIe);
IELinkX(objIe,strWord,true);
busyWait(objIe);
WScript.Quit(0);

//------
// 指定したリンク文字列を選ぶ
// (入力値)objIe    IEオブジェクト
// (入力値)string1    リンク文字列
// (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
// (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
//------
function IELinkX(objIe,string1,flgP){
    var i;
    // 完全一致を探す
    for(i=0; i<objIe.document.links.length; i++){
        if(string1==objIe.document.links(i).innerText){
            objIe.Navigate(objIe.document.links(i).href);
            return(true);
        }
    }
    // 部分一致を探す
    if (flgP){
        for(i=0; i<objIe.document.links.length; i++){
            string2=objIe.document.links(i).innerText
            if(0<=string2.indexOf(string1)){
                objIe.Navigate(objIe.document.links(i).href);
                return(true);
            }
        }
    }
    return(false);
}
//------
function busyWait(objIe){
    WScript.Sleep(200);
    do {
        WScript.Sleep(500);
    } while ((objIe.busy) || (objIe.readyState!=4));
    WScript.Sleep(200);
}

// 54JsSp2Objdoc.js
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [JScript][Sleipnir2] :: ドキュメント・オブジェクト
var strWord="UWSC"
var objSp,objDocId,objDoc,objIe
objSp=new ActiveXObject("Sleipnir.API");
while (0>objSp.ActiveIndex){  WScript.Sleep(1);  }
objDocId=objSp.GetDocumentID(objSp.ActiveIndex)
objSp.Navigate(objDocId, "http://www.google.co.jp/")
waitBusySp(objSp,objDocId)
objDoc=objSp.GetDocumentObject(objDocId)
if (objDoc==null){  objSp.MessageBox("ドキュメント・オブジェクトを作成できません。");  WScript.Quit(0);  }
objDoc.f.q.value=strWord;
objDoc.f.btnG.click();
waitBusySp(objSp,objDocId)
documentLink(objDoc,strWord,true);
waitBusySp(objSp,objDocId)
WScript.Quit(0);

//------
// 指定したリンク文字列を選ぶ
// (入力値)objDoc    ドキュメント・オブジェクト
// (入力値)string1    リンク文字列
// (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
// (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
//------
function documentLink(objDoc,string1,flgP){
    var string2
    var i;
    // 完全一致を探す
    for(i=0; i<objDoc.links.length; i++){
        if(string1==objDoc.links(i).innerText){
            objDoc.links(i).click()
            return(true);
        }
    }
    // 部分一致を探す
    if (flgP){
        for(i=0; i<objDoc.links.length; i++){
            string2=objDoc.links(i).innerText
            if(0<=string2.indexOf(string1)){
                objDoc.links(i).click()
                return(true);
            }
        }
    }
    return(false);
}
//------
function waitBusySp(objSp,objDocId){
    WScript.Sleep(200);
    do {
        WScript.Sleep(500);
    } while (objSp.isbusy(objDocId));
    WScript.Sleep(200);
}

// 55JsSp2Objie.js
// 『UWSC』を検索語としてGoogleで検索し、『UWSC』を含むリンク文字列を選んで表示
// [JScript][Sleipnir2] :: InternetExplorer.Application オブジェクト :: COM
var strWord="UWSC"
var objSp,objDocId,objIe,objWs
objSp=new ActiveXObject("Sleipnir.API");
while (0>objSp.ActiveIndex){  WScript.Sleep(1);  }
objIe=objSp.GetWebBrowserObject(objSp.GetDocumentID(objSp.ActiveIndex));
objIe.Navigate("http://www.google.co.jp/")
busyWait(objIe);
objIe.document.f.q.value=strWord;
objIe.document.f.btnG.click();
busyWait(objIe);
IELinkX(objIe,strWord,true);
busyWait(objIe);
WScript.Quit(0);

//------
// 指定したリンク文字列を選ぶ
// (入力値)objIe    IEオブジェクト
// (入力値)string1    リンク文字列
// (入力値)flgP        部分一致 TRUE:有効 FALSE:無効
// (戻り値)result    マッチする文字列が TRUE:在った FALSE:無かった
//------
function IELinkX(objIe,string1,flgP){
    var i;
    // 完全一致を探す
    for(i=0; i<objIe.document.links.length; i++){
        if(string1==objIe.document.links(i).innerText){
            objIe.Navigate(objIe.document.links(i).href);
            return(true);
        }
    }
    // 部分一致を探す
    if (flgP){
        for(i=0; i<objIe.document.links.length; i++){
            string2=objIe.document.links(i).innerText
            if(0<=string2.indexOf(string1)){
                objIe.Navigate(objIe.document.links(i).href);
                return(true);
            }
        }
    }
    return(false);
}
//------
function busyWait(objIe){
    WScript.Sleep(200);
    do {
        WScript.Sleep(500);
    } while ((objIe.busy) || (objIe.readyState!=4));
    WScript.Sleep(200);
}

←トップページのカウンタと共通です。