- ベストアンサー
エクセルのマクロでブラウザを開き、指定したURLのフォームに固定文字列を入力する方法はありますか?
- エクセルのマクロを使って、ボタンをクリックしたらブラウザを立ち上げ、指定したURLの画面にあるフォームに固定文字列を入力することは可能です。
- さらに、そのフォームをpost送信した状態にすることもできます。
- 以下のサイトのソース抜粋では、エクセルからボタンをクリックするだけで、サイトにログインした状態にすることができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんなのはどうでしょうか? 質問の<form...>にnameが無いので、そのページの最初のformにデータを送ります。 目的のhtmlの2番目の<form...>に送る場合は、 With ie.Document.forms(0) を With ie.Document.forms(1) に変更してください。(0から始まるため)(もちろん3番目ならforms(2)) Sub sample() 'IEを起動する Dim ie As Object Set ie = CreateObject("InternetExplorer.Application") Const READYSTATE_COMPLETE = 4 ''参照設定で「Microsoft Internet Controles」をチェックすれば、上3行は下1行で済む 'Dim ie As New InternetExplorer 'ieを表示する(初期状態で表示しないので) ie.Visible = True '目的のURLを開く ie.Navigate ("http://www.hoge.com") '表示が終わるまで待つ Do While (ie.ReadyState <> READYSTATE_COMPLETE) Or (ie.Busy = True) DoEvents Loop '目的のformにデータを設定 With ie.Document.forms(0) '<input type="text" name="MAIL" size="30" value="">にデータを設定 .Item("MAIL").Value = "aaa@aaa.aaa" 'formをsubmitする .submit End With 'ieをvbaの管理下から切り離す Set ie = Nothing End Sub
お礼
丁寧なご解答ありがとうございました! うまくできました!! フォームの名前を指定する事もできるのですね。 調べるための切り口が分かったので色々調べて見ます。。。