プロが教えるわが家の防犯対策術!

VBSでリンクをクリックしたいのですが、

某所からコピペしたVBSのスクリプトです。

これを実行すると、たしかに
YAHOOのオークションに行きます。

==============================

Option Explicit

Dim objIE
Dim objShell
Dim strBody
Dim objLINK

'Shell.Application オブジェクトの作成
Set objShell = CreateObject("Shell.Application")

'IE を起動して Yahoo のトップページを開く
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True 'IEウィンドウを表示
objIE.Navigate2 "http://www.yahoo.co.jp/" 'Yahoo のページが起動する

'ページの読み込みが終わるまで待機する
Do Until objIE.Busy = False
'空ループだと無駄にCPUを使うので250ミリ秒のインターバルを置く
WScript.sleep(250)
Loop

' Yahoo トップページのオークションのリンクをクリックする
For Each objLINK In objIE.Document.Links
If objLINK.InnerText = "オークション" Then
objLINK.Click
Exit For
End If
Next

============================

質問させていただきたいのは

If objLINK.InnerText = "オークション" Then

この部分が例えば「オークション」でなくとも「オークショ」のように
アンカーテキストリンクの一部が同じだったら、いけるようにしたいのですが、
どうしたらよろしいでしょうか?

「オークション」
だったら
「オークショ*」

「*クション」

とかでもいけるのかなーとおもってたんですが、
全然わからないんです。

どうかよろしくお願い致します。

A 回答 (1件)

プログラミング用語で「正規表現」というやつですね。


「VBS 正規表現」で検索するといいですよ。

最後の節をこうしてみてください。

Dim objRE
Set objRE=CreateObject("VBScript.RegExp")
objRE.Pattern="^.*ークショ.*$"
' Yahoo トップページのオークションのリンクをクリックする
For Each objLINK In objIE.Document.Links
If objRE.Test(objLINK.InnerText) Then
objLINK.Click
Exit For
End If
Next

objRE.Pattern="^.*クシ.*$" でもオークションのトップページに飛べましたよ。

参考URL:http://chaichan.lolipop.jp/vbtips/VBMemo20070101 …
    • good
    • 0
この回答へのお礼

助かりました!
ありがとうございました!

>「VBS 正規表現」で検索
なるほど!

お礼日時:2013/03/08 13:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!