vbsでフォーム入力ができないエラーについて

このQ&Aのポイント
  • vbsでフォーム入力ができないエラーが発生します。
  • エラーメッセージは「オブジェクトでサポートされていないプロパティまたはメソッドです」と表示されます。
  • 解決方法がわからないため、詳しい方に助けを求めています。
回答を見る
  • ベストアンサー

vbsでフォーム入力ができません

set oIE=Wscript.CreateObject("InternetExplorer.application") oIE.navigate2("http://xxxyyy/index.html") oIE.visible=true Do Until oIE.Busy = False WScript.sleep(250) Loop oIE.document.sf1.name.value="山田太郎" oIE.document.sf1.email.value="abc@xxx.co.jp" oIE.document.sf1.subject.value="人材募集" oIE.document.sf1.submit() 7行目のoIE.document.sf1.name.value="山田太郎"でエラーになってしまいます。”オブジェクトでサポートされていないプロパティまたはメソッドです”とエラーメッセージがでます。vbsは殆どわかりませんのでわかる方いましたらお願いします。

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

  • ベストアンサー
  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.2

ANo.1のお礼への回答です。 >input type="text" name="name" size="20" maxlength="8" >これに、値を与える場合は >oIE.document.name.value="山田太郎"で良いのでしょうか? documentとinputのnameの間にフォームの指定が必要です。htmlの<form ...>の記述を探して下さい。 yahoo mailのhtmlでは<form ... name=login_form>と記述されていますので、ANo.1の回答のようにlogin_formを指定します。htmlにname=の記述が無ければForms(n)を指定します。yahoo mailの場合、下記でもできました。 oIE.document.Forms(0).login.value = "Yahoo! JAPAN ID"

bobo_0827
質問者

お礼

できました!!感動です! 大変、有難うございました。感謝です。

その他の回答 (1)

  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.1

htmlのソースを見てフォームの名称などを確認されては。 Windows XP SP2で、yahoo mailのログインは下記でできました。 ----- set oIE=Wscript.CreateObject("InternetExplorer.application") oIE.navigate2("https://login.yahoo.co.jp/config/login_verify2?.src=ym") oIE.visible=true Do Until oIE.Busy = False WScript.sleep(250) Loop oIE.document.login_form.login.value = "Yahoo! JAPAN ID" oIE.document.login_form.passwd.value = "パスワード" oIE.document.login_form.submit() -----

bobo_0827
質問者

お礼

アドバイスありがとうございます。 vbsを使用してフォーム入力を試みるのは初めてです。vbsというものがあることも知りませんでした。それくらいの初心者です。 以下のようにフォームがhtmlが書かれていた場合、 input type="text" name="name" size="20" maxlength="8" これに、値を与える場合は oIE.document.name.value="山田太郎"で良いのでしょうか?

関連するQ&A

  • vbsでフォームに値を入力できない

    下記のコードによりファイルパスを入力したいのですが、思ったとおりに動いてくれません(環境はwindowsXP、IE6) set IE=WScript.CreateObject("InternetExplorer.Application") IE.Navigate("http://~") IE.Visible=true IE.document.form(0).file.value="c:\etc.csv" 値を入力しようとしているテキストボックスは、 ファイルパスを入力するテキストボックスで、「ファイルを 選択する」ダイアログボックスを起動するボタンが付属していますが、 パスを直接入力することも可能です。 「IE.document.form(0).file.focus」では問題ないのですが、 「IE.document.form(0).file.value="c:\etc.csv"」ではテキストボックスに値が入力されません。つたない説明で恐縮ですが、解決への ヒントをご教示頂ければ幸いです。よろしくお願いいたします。

  • ログイン、パスワードをセットしておきたい。

    IEの決められたサイトをよびだし、ログイン、パスワードを自動で固定の文字をセットするVBスクリプトを作成したい。 画面は下記で出ることはわかったのですが宜しくお願いします。 (尚、ツール=>インターネットオプションは対象外です) Set oIE = CreateObject("InternetExplorer.Application") oIE.Visible = True oIE.Navigate "http://wwwX.XXXXXXXX.com/XXXX/" '*** ページがロードされるまで待つ Do While oIE.busy WScript.Sleep(1000) Loop

  • DoEvents

    VBSでDoEventsは使えないのでしょうか? *************************** Dim ObjIE dim i Set ObjIE = CreateObject("InternetExplorer.Application") ObjIE.Navigate "http://oshiete.goo.ne.jp/" ObjIE.Visible = True Do While ObjIE.Busy = True DoEvents Loop Do While ObjIE.Document.ReadyState <> "complete" DoEvents Loop Set ObjIE = Nothing *************************** だと、エラーになりました。 Wscript.sleep 3000 ならエラーにならずにコードは動きました。 VBAならDoEventsは使えるのに VBSで使えない理由を教えてください。

  • vbsで開かれた別ウィンドウを制御したい。

    いつもお世話になっております。 VBSで Dim oIE Set oIE = CreateObject("InternetExplorer.Application") oIE.Navigate("https://xxxx.jsp") 等でhpを自動的にクリックしたりして動かしています。 そのページ内にあるリンクをクリックすると、別ウィンドウで立ち上がるページがあるのですが、そのページを動かしたりする事は出来ますでしょうか。 よろしくお願いします。

  • 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でブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法

    VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法を教えてください。 現在、下のような方法で行っているのですが応用が利かないので改善したいと思っています。 Set IE = CreateObject("InternetExplorer.Application") Set WshShell = CreateObject("WScript.Shell") IE.Visible = True IE.Navigate("https://サイトのURL") Do Until IE.Busy = False WScript.Sleep 1000 WshShell.SendKeys "y" Loop '(セキュリティの警告が出るため) WScript.Sleep 100 WshShell.SendKeys "{TAB}" WScript.Sleep 100 WshShell.SendKeys "loginid" WScript.Sleep 100 WshShell.SendKeys "{TAB}" WScript.Sleep 100 WshShell.SendKeys "password" WScript.Sleep 100 WshShell.SendKeys "{TAB}" WshShell.SendKeys "{ENTER}" 操作したいページのソースの一部を抜粋すると下記のようになっています。 テキストボックス <INPUT type="text" name="loginId" class="Necessary" size="20" maxlength="5" value="" tabindex="20"> ボタン <INPUT class="button10" type="button" name="sentaku" value="認証" onClick="javascript:execute・・・・略 うまく操作できる方法を教えてください。 よろしくお願いします。

  • 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のNavigateコマンドについて

    VBSのNavigate の URL指定の中に inputboxで 変数を代入したいのですがうまくいきません お分かりの方 教えていただければ幸いです。 Dim Input Input = InputBox("~~~~") Set objIE = WScript.CreateObject("InternetExplorer.Application") objIE.Navigate "https://xxx Input xx" ← この中のURLに挿入したい。 末筆ですみませんがよろしくお願いします。

  • vbsでexcelのクリアとフォームの表示をしたい

    お世話になっております。 vbsの以下の記述でexcelを開いています。 開くところまでは行くのですが、その後のsheet1のデータのクリアとUserForm1の表示がどうしてもできません。 申し訳ありませんが、どなたかおわかりの方、教えていただけないでしょうか。 宜しくお願いいたします。 Dim oApp Dim objWshShell Dim scriptPath 'Excelオブジェト作成 Set oApp = CreateObject("Excel.Application") 'WScript.Shellオブジェクト作成 Set objWshShell = CreateObject("WScript.Shell") oApp.Visible = True '不可視にする oApp.UserControl = True 'Excelファイルを開く scriptPath = WScript.ScriptFullName scriptPath = left(scriptPath,len(scriptPath)-len(WScript.ScriptName)) oApp.Workbooks.Open scriptPath & "共同資料.xlsm"

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

専門家に質問してみよう