- ベストアンサー
VBSでリンクをクリックする方法は?
jin34の回答
プログラミング用語で「正規表現」というやつですね。 「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="^.*クシ.*$" でもオークションのトップページに飛べましたよ。
関連するQ&A
- VBSでとある条件の時に処理をやらずに終了させる方法
VBSでとある条件の時に処理をやらずに終了させる方法で悩んでいます。 Dim ObjIE Dim ObjShell Dim ObjWindow Dim WinExist WinExist = False Set ObjShell = CreateObject("Shell.Application") For Each ObjWindow In ObjShell.Windows If TypeName(ObjWindow.Document) = "HTMLDocument" Then WinExist = True Set ObjIE = ObjWindow End If Next Set ObjShell = Nothing If Not WinExist = True Then Set ObjIE = CreateObject("InternetExplorer.Application") End If ・ ・ ・ ・ 例えばこのように起動しているIEを探します そこでもしYahoo!JAPANが起動していたら以降の処理をやらずに終わらせたいのですが・・・ どのような記述にすればよいでしょうか?
- ベストアンサー
- Visual Basic
- インターネットで調べてVBSで下のようなものを作ってみました。
インターネットで調べてVBSで下のようなものを作ってみました。 やりたいことは、IEを起動して複数のサイトを複数のタブで表示 したいのですが、サイトの種類分IEも起動してしまいます。 考えているようなことはできないのでしょうか。 ========ここから下です======== Option Explicit Dim objIE Dim objShell 'Shell.Application Set objShell = CreateObject("Shell.Application") Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを表示 objIE.Navigate2 "http://www.okwave.jp/" Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを表示 objIE.Navigate2 "http://www.google.co.jp/" Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'IEウィンドウを表示 objIE.Navigate2 "http://www.yahoo.co.jp/" ======================= よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- 起動しているIEをVBSで閉じるときの問題・・・
VBスクリプトで起動しているIEを探し特定のサイトであればウィンドウを閉じたいのですがどのようにすればよいのでしょうか? Dim ObjIE Dim ObjShell Dim ObjWindow Dim WinExist WinExist = False Set ObjShell = CreateObject("Shell.Application") For Each ObjWindow In ObjShell.Windows If TypeName(ObjWindow.Document) = "HTMLDocument" Then WinExist = True Set ObjIE = ObjWindow End If Next Set ObjShell = Nothing If Not WinExist = True Then Set ObjIE = CreateObject("InternetExplorer.Application") End If If objIE.Document.URL = "http://www.yahoo.co.jp/" Then objIE.quit End If If objIE.Document.URL = "http://www.excite.co.jp/" Then objIE.quit End If If objIE.Document.URL = "http://www.google.co.jp/" Then ?????????? End If ・ ・ ・ 例えばディスプレイ上にYahoo、Excite、Googleのホームページがそれぞれ立ち上がっていたとします。 もしYahooがあれば閉じて次にExciteを探しあれば閉じて、次にGoogleのページがあればそのままにし後の処理を行わず終わらせたいのですが・・・もしGoogleが開いていればこれ以降の処理を全てすっ飛ばして終了にしたいのですが・・・ また、If thenを繰り返してばかりで汚いコードのような気もします。 これをやっていてYahoo、Excite、Google全て開いていた場合何故かエラーが出て終了してしまいます。 どなたかいい方法があれば教えて下さい。
- ベストアンサー
- Visual Basic
- VBのコードが理解できません 解説いただけないでしょうか?
Dim ObjIE As Object Dim ObjShell As Object Dim ObjWindow As Object Dim WinExist As Boolean WinExist = False Set ObjShell = CreateObject("Shell.Application") For Each ObjWindow In ObjShell.Windows If TypeName(ObjWindow.Document) = "HTMLDocument" Then WinExist = True Set ObjIE = ObjWindow End If Next Set ObjShell = Nothing If Not WinExist = True Then Set ObjIE = CreateObject("InternetExplorer.Application") End If ObjIE.Navigate "http://nantokakantoka.html" ObjIE.Visible = True このコードを解説いただけないでしょうか? 特に WinExist For Each ObjWindow In ObjShell.Windows If TypeName(ObjWindow.Document) = "HTMLDocument" Then が何をしているのか分からないんです。
- ベストアンサー
- Visual Basic
- VBでのContinueが間違っているとき
http://oshiete1.goo.ne.jp/qa4564345.htmlではありがとうございました。 教わったことを参考にやってみたのですがうまくいきません。 Continueの部分がうまくいくPCといかないPCがあるのでどうしたらいいか分からなくなってしまいました・・・ Option Explicit Dim objIE Dim objShell Dim objWindow Dim WinExist Dim strURL Dim strURL2 Dim Flug strURL = "http://www.yahoo.co.jp/" strURL2 = "http://www.google.co.jp/" WinExist = False Set objShell = CreateObject("Shell.Application") For Each objWindow In objShell.Windows If TypeName(objWindow.Document) <> "HTMLDocument" Then Continue End If WinExist = True Set objIE = objWindow If objIE.LocationURL = strURL Then Flug = True Exit For End If Next If Flug = True Then msgbox "ヤフー存在" Else msgbox "別の処理を行なう" If WinExist = False Then 'IEが無い場合 起動する Set objIE = WScript.CreateObject("InternetExplorer.Application") objIE.Navigate strURL2 objIE.Visible = True Set objIE = Nothing End If End If
- ベストアンサー
- Visual Basic
- VBS で IE ウィンドウがアクティブにならない
Inputbox で URL 文字列の一部を打ち込むと、IE オブジェクトがある場合には新規タブを作成し、当該サイトへアクセスするスクリプトを作っています。 後述がサンプルです。 スクリプトの最後にウィンドウをアクティブにするコードを入れているのですが、スクリプト自体はエラーなく完了するものの、IE ウィンドウをアクティブにすることができません。 Win10+IE11 を使っているのですが、何かコードが足りなかったりするのでしょうか。。。 それとも、Win10 + IE11 環境ではそもそも VBS で IE ウィンドウをアクティブにすることはできないのでしょうか。。。 アドバイスを下さると幸いです。 よろしくお願いいたします。 -------------------------------------------------------------------- Dim linknum dim objIE dim spurl linknum=Inputbox("リンク番号を入力してください。") spurl="https://xxxx" & linknum 'Shell.Applicationオブジェクトの作成 Set objShell = CreateObject("Shell.Application") 'IEウィンドウの個数をカウント lngCount = 0 For Each objWindow In objShell.Windows lngCount = lngCount + 1 Next With objShell.Windows 'IE オブジェクトがないときは、新しく作成する If lngCount = 0 Then .Item.Navigate2 spurl lngCount = lngCount + 1 objIE.FullScreen = True objIE.Visible = True 'IE オブジェクトがあるときは、タブを操作する(新しいタブを作成) Else .Item(lngCount - 1).Navigate2 spurl,&H800 IE ウィンドウをアクティブにする Set WshShell=Wscript.CreateObject("Wscript.Shell") WshShell.AppActivate "ページタイトル" WshShell.SendKeys "%( )" WshShell.SendKeys "R" End If End With -------------------------------------------------------------------------------
- ベストアンサー
- Visual Basic
- 【VBA】IEのリンクを新しいタブで開く
VBAでIEを制御しリンク(アンカー)<a href="***">を新しいタブで開くようにしたいのですが可能でしょうか? 仮にグーグルのトップページ(http://www.google.co.jp/)の『検索オプション』(http://www.google.co.jp/advanced_search?hl=ja)を新しいタブで開くとします 実際に開きたいリンクのURLは固定ではないためURLの指定では開けませんが、飛びたいリンクの文言(『検索オプション』)は固定です リンクに飛ぶ前に飛ぶ先のURLを取得する仕方か、Shift+Ctrl+クリックのようにリンクを新しいタブで開く方法を教えてください 一度普通にリンクに飛んでからURLを取得し、戻ってから新しいタブで開くぐらいしかできないのでしょうか? Sub 新しいタブで開く() Dim objIE As Object Dim objShell Dim URL As String Set objShell = CreateObject("Shell.Application") For n = objShell.Windows.Count To 1 Step -1 Set objIE = objShell.Windows(n - 1) If Right(UCase(objIE.FullName), 12) = "IEXPLORE.EXE" Then objIE.Navigate "http://www.google.co.jp/" Exit For End If Next Set objShell = Nothing objIE.Visible = True Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop For Each Obj In objIE.Document.getElementsByTagName("a") If Obj.innerText = "検索オプション" Then Obj.Click Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop URL = objIE.Document.URL objIE.GoBack Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Navigate URL, CLng(&H800) Exit For End If Next End Sub よろしくお願いいたします
- ベストアンサー
- オフィス系ソフト
- 「OuterText」と「「innerText」」
「OuterText」と「「innerText」」の違いは何でしょう? エクセルVBAです。 Sub test() Dim objLINK As Object Dim objIE As InternetExplorer Dim i As Long Set objIE = CreateObject("InternetExplorer.Application") objIE.GoHome objIE.Visible = True Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop For Each objLINK In objIE.Document.Links i = i + 1 Cells(i, 1) = objIE.Document.Links(i - 1).OuterText ' Next objIE.Quit Set objIE = Nothing End Sub のOuterTextをinnerTextに変えても結果は同じなのですが、 「OuterText」と「「innerText」」の違いはなんでしょう? ヘルプを見ようと思ったのですが なぜか見れないので教えてください。
- ベストアンサー
- オフィス系ソフト
- VBAでIE操作をするサンプル
VBAでIE操作をするサンプルをネットでいくつか見ているのですが Sub Sample1() Dim objShell As Object Dim objIE As New InternetExplorer Set objShell = CreateObject("Shell.Application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing Set objShell = Nothing End Sub Sub Sample2() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub ではどちらを使った方がいいのでしょうか? 圧倒的にSample2の方がネットでは多いのですが Sample1のやり方もあることを知りました。 Sample1の方法でブラウザを開くメリットはあるのでしょうか?
- ベストアンサー
- Visual Basic
- VBSの作り方がわかりません
下記のようなVBSを使いたいのですが テキストでなくエクセルをアクティブにしたいのですがうまくいきません どのように直せばよいのかお教えください。 お願いいたします。 Dim excel With CreateObject("Wscript.Shell") .Run "D:\DATA\T.txt" End With On Error Resume Next Set excel = GetObject(, "Excel.Application") If Err.Number <> 0 Then Set excel = CreateObject("Excel.Application") End If excel.Visible = True excel.Workbooks.Open "D:\DATA\Sin1.xls"
- 締切済み
- Windows 7
お礼
助かりました! ありがとうございました! >「VBS 正規表現」で検索 なるほど!