FIREFOXでWebページを表示できるVBS

このQ&Aのポイント
  • VBS超初心者の方が10年くらい前に作られたVBSを修正したいとのことです。
  • 現在はIEで動作しているVBSをFIREFOXでも表示できるようにしたいとのことです。
  • 具体的なソースコードや方法についてのアドバイスを求めています。
回答を見る
  • ベストアンサー

FIREFOXでWebページを表示できるVBS

VBS超初心者です。 10年くらい前に作られたVBSを修正したいのですが、さっぱりわからないため助けてください。 勤務先で、社内イントラのデータベースを参照するときに使っているVBSです。 【いまの挙動】 VBSを起動すると文書番号の入力画面が表示→入力してEnter→IEで該当ページ(http:★★★/文書番号)が表示されます。 【やりたいこと】 FIREFOXで表示したい。(先日のIE脆弱性の騒ぎの影響で、上から指示があり。。) 今は以下のようなソースで使ってます。 ---------------------- Sid = InputBox("ID を入力。") Sid = Trim(Sid) If Sid = "" Then WScript.Quit If Len(Sid) <>14 Then WScript.echo "ID が不正。" WScript.Quit End If Set objie = WScript.CreateObject("internetexplorer.Application") objie.navigate2 "http://★★★/" & Sid objie.Visible = True WScript.Quit ---------------------- 「internetexplorer.Application」ではダメなことはわかるのですが それ以上は私の知識ではお手上げでした。。 どなたか詳しいかた、アドバイスお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.1

Dim objShell Set objShell = CreateObject("WScript.Shell") objShell.Run """C:\Program Files\Mozilla Firefox\firefox.exe"" ""http://★★★/" & Sid & """", vbNormalFocus, False Set objShell = Nothing という感じでしょうか。 Firefoxの実行ファイルのパスは、お使いの環境に合わせて変更してください。 WshShell.Runメソッドについて http://msdn.microsoft.com/ja-jp/library/cc364421.aspx Firefoxのコマンドラインオプションについて https://developer.mozilla.org/ja/docs/Mozilla/Command_Line_Options#-url_URL

himawari12345
質問者

お礼

ありがとうございます!! 無事に解決しました。 リンクしていただいたページをみて、勉強します 今回は急ぎで必要だったので本当にたすかりました。 ありがとうございました。

関連するQ&A

  • vbsよりIEをアクティブに開きたい

    お世話になります。 Windows7Pro サーバー上にあるhtmlファイルをvbsより開いてます。 また、5秒で閉じるようにしてます。 現状、vbsを実行するとhtmlファイルが開くことは開くの ですが、他ウィンドウの後ろになってしまいます。 どこをどうすれば開いたhtmlファイル(IE)を最前面で起動 することができますでしょうか。 【vbsの内容】 Option Explicit On Error Resume Next Dim strUrl ' 表示するページ Dim objIE ' IE オブジェクト strUrl = "サーバー上にあるhtmlファイルのパス" Set objIE = WScript.CreateObject("InternetExplorer.Application") objIE.ToolBar = False If Err.Number = 0 Then objIE.Navigate strUrl objIE.Visible = True objIE.Width = 800 objIE.Height = 400 objIE.Top = 0 objIE.Left = 480 WScript.Sleep 5 * 1000 objIE.Quit Else WScript.Echo "エラー:" & Err.Description End If 【htmlの内容】 <html> <head> <title>テスト</title> </head> <BODY> <IMG src="画像のパス"> <font size="7">TEST</font> </div> </body> </html> ご教示の程、宜しくお願い致します。

  • VBS(WSH)で開いたIEのウィンドウがアクティブにならない

    VBSでタイトルバーのみのIEウィンドウを開き、 SendKeyでtestと入力するスクリプトを作成しています。 ですが、開いたIEのウィンドウがアクティブにならず、 SendKeyがIEに送信されません。 VBSについては全くの初心者でして、ウィンドウがアクティブにならないのが 環境の問題なのか、プログラムの問題なのか判断できません。 どなたかご教授をお願いします。 IEのバージョンは8、OSはWinXPです。 以下、ソースです。 -------------------------------------------------- 'タイトルバーのみのIEを起動する Set WshShell = WScript.CreateObject("WScript.Shell") Set objIE = WScript.CreateObject("InternetExplorer.Application") objIE.Navigate("http://www.google.co.jp/") objIE.MenuBar = False objIE.StatusBar = False objIE.ToolBar = False objIE.AddressBar = False objIE.Visible = True '表示待ちループ Do While objIE.Busy WScript.Sleep 100 Loop '[test]で検索 WshShell.SendKeys("test") WScript.Sleep(100) WshShell.SendKeys("{TAB}") WScript.Sleep(100) WshShell.SendKeys("{ENTER}") --------------------------------------------------

  • VBSでフォームに値を繰り返し入れる方法で悩んでいます

    VBScriptでフォームに値を入れることを繰り返したいのですがどうもうまくいかずに悩んでいます。いい方法を教えて下さい。 指定ページを開いた後に If objIE.Document.URL = strURL Then Set objIN = objIE.Document.getElementByTagName("INPUT") objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop If objIE.Document.URL <> strAfterLoginPage Then objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop ElseIf objIE.Document.URL <> strAfterLoginPage Then objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop ElseIf objIE.Document.URL <> strAfterLoginPage Then objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop ElseIf objIE.Document.URL <> strAfterLoginPage Then objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop Else objIE.Document.URL <> strAfterLoginPage Then objIN(0).value = ID objIN(1).value = PASSWORD objIN(2).Click Do Until objIE.Busy = False WScript.sleep(250) Loop End If 以下省略 といったように1回でログインできなかった場合何度か入力するプログラムなのですが最初のElseIfの後のところで「オブジェクトがありません」となってしまいます。 ページも遷移してないのですが何故かオブジェクトがなくなってしまいます。 そういった対策をすればよいのでしょうか? お願いします。

  • VBSで起動したアプリが前面表示しない

    Powerpointをコンテキストメニューに「読み取り専用」を追加するために以下のVBscriptを起動すると前面表示されません。 どうしたら前面表示されますでしょうか? 起動コマンド wscript.exe "C:\Program Files\Microsoft Office\Office14\OpenPptAsReadOnly.vbs" "%1" 以下がVBscript(OpenPptAsReadOnly.vbs)です。 Dim strPPTFileName Dim objPPTApp '引数のチェック If WScript.Arguments.Count <> 1 Then WScript.Quit 'ファイル名取得 strPPTFileName = WScript.Arguments(0) '起動 Set objPPTApp = WScript.CreateObject("Powerpoint.Application") objPPTApp.Visible = True '読み取り専用で開く Call objPPTApp.Presentations.Open(strPPTFileName,True) '終了処理 Set objPPTApp = Nothing WScript.Quit

  • VBSでobjLINK.InnerTextの一部だ

    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 この部分が例えば「オークション」でなくとも「オークショ」のように アンカーテキストリンクの一部が同じだったら、いけるようにしたいのですが、 どうしたらよろしいでしょうか? 「オークション」 だったら 「オークショ*」 や 「*クション」 とかでもいけるのかなーとおもってたんですが、 全然わからないんです。 どうかよろしくお願い致します。

  • エクセルブックの複製(.vbs)

    「原紙」という名前のエクセルブックがあり、新しいお客様が増えたらそのブックを複製し、更にその時にダイアログを出してお客様の名前を入力し、それをファイル名にしたいです。 下記の.vbsファイルに元ファイルをドラッグすると連番を付けて複数作る、という目的でのコマンドを見つけました(これも凄いですが)。 もし改良出来る方がいたら教えてください。 ・コピー数の指定は必要ありません(毎回1ファイルのみ複製)。 ・ドラッグすると、ダイアログが出てきて入力したものがファイル名になる。 よろしくお願い致します。 If WScript.Arguments.Count = 0 Then WScript.Quit Dim fso Set fso = CreateObject( "Scripting.FileSystemObject" ) '--- コピー元ファイルの確認 filePath = WScript.Arguments.Item(0) If fso.FileExists( filePath ) = False Then WScript.Echo filePath & "がありません" WScript.Quit End If '--- コピー数の指定 Num = InputBox( filePath & vbNewLine & "をいくつコピーしますか") If IsNumeric( Num ) = False Then WScript.Echo "数値を入力してください。" WScript.Quit End If If Num > 999 Or Num < 1 Then WScript.Echo "数値は1~999で指定してください。" WScript.Quit End If Extention = "." & fso.GetExtensionName( filePath ) '--- ファイルチェック For i=1 To Num newFilePath = Replace( filePath, Extention, "_" & Right( "000" & i, 3) & Extention ) If fso.FileExists( newFilePath ) = True Then WScript.Echo "作成予定のファイル【" & newFilePath & "】が既に存在します。" WScript.Quit End If Next '--- ファイルコピー For i=1 To Num newFilePath = Replace( filePath, Extention, "_" & Right( "000" & i, 3) & Extention ) fso.CopyFile filePath, newFilePath Next

  • 起動している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全て開いていた場合何故かエラーが出て終了してしまいます。 どなたかいい方法があれば教えて下さい。

  • VBS : 正常に動作しないのはなぜ?

    複数ファイルのファイル名を変更するVBSを作りましたが、正常に動作しません。 複数のファイルが入ったフォルダをVBSファイルにドラッグアンドドロップすると、 ファイル名が正しく変更される場合と、予期しないファイル名になってしまう場合があります。 フォルダ内のファイル数が多いと、ファイル名が異様に長いものになってしまいます。 どこが悪いのかをご指摘いただければ幸いです。 よろしくお願いいたします。 'ドロップされたファイルの情報を取得 Set arg=WScript.Arguments '店IDの入力ウィンドウを表示 ShopID = InputBox("店IDを入力してください。","店IDの追加","") If ShopID = "" Then   WScript.Quit End If Set fs=CreateObject("Scripting.FileSystemObject") For Each item0 In arg   If fs.FileExists(item0) Then     e(item0)   ElseIf fs.FolderExists(item0) Then     r fs.GetFolder(item0)   End If Next WScript.Quit Sub r(f)   For Each f1 In f.Files     e f1   Next   For Each f1 In f.SubFolders     r f1   Next End Sub 'ファイル名の頭に店IDを付ける Sub e(FilePth)   NewName = ShopID & "_" & fs.GetFileName(FilePth)   Set src = fs.GetFile(FilePth)     src.Name = NewName End Sub

  • インターネットで調べて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/" ======================= よろしくお願いいたします。

  • 【VBS】IEのページ読み込み中待機について

    IE8(WinXPSP3)で決まったサイトを複数開いていくVBSを作成しています。 開きたいサイトや数は時々変わるので、最初の方でサイトURLと数を設定しています。 普通にサイト1をIEで開いて、ページが表示されるまで待機し、 その後、サイト2以降を順次新しいタブで開く→表示されるまで待機→開く→待機と 処理させますが、最終的にはサイト1が表示されたタブがアクティブになっていてほしいので サイト2以降が表示される際はアクティブタブが変わらないように 「objIE.Navigate2 URL(i), 4096,」としています。 ここから質問ですが、今の状態だとサイト2を開いたあとの「待機」が機能していません。 サイト1が開く→表示まで待機する→サイト2~5が一気に開いてしまう、という 具合です。 サイト1開く→表示完了まで待機→サイト2開く→表示完了まで待機→サイト3開く→ 表示完了まで待機→としていくにはどのようにしてやればよいでしょうか? プライベートで作っているものなので、特に急いではおりません。 よろしくお願いします。 Dim objIE Dim i, cnt Dim URL(20) URL(1) = "http://www.yahoo.co.jp/" URL(2) = "http://www.google.co.jp/" URL(3) = "http://www.goo.ne.jp/" URL(4) = "http://www.excite.co.jp/" URL(5) = "http://jp.msn.com/" cnt = 5 Const navOpenInNewTab = &H800 Const navOpenInBackgroundTab = &H1000 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate2 URL(1) Do Until objIE.Busy = False WScript.sleep(1000) Loop ↓↓↓↓↓ここからが質問したいところです↓↓↓↓↓ For i = 2 to cnt step 1 objIE.Navigate2 URL(i), 4096, navOpenInNewTab Do Until objIE.Busy = False WScript.sleep(1000) Loop Next Set objIE = Nothing

専門家に質問してみよう