Excel VBA を使用して、スプレッドシートから aspx オンライン フォームにデータをエクスポートし、送信しようとしています。
例: 列 A に「名前」というタイトルのスプレッドシートがあります。行には対応するデータが入力されます。また、asp.net Web フォームに誘導する URL もあります。Web フォームには「Your Name」というフィールドがあります。次の操作を実行するマクロを実行したいと思います。
- インターネットエクスプローラを起動する
- ASP WebフォームのURLに移動する
- Excelスプレッドシートの2行目の対応するデータをWebフォームのフィールドに入力します。
- 送信ボタンをクリックしてください
- すべての行が送信されるまで繰り返します
エクセルスプレッドシート:
HTML でこれを行う方法に関するチュートリアルは見たことがありますが、ASP Web フォームに関するものはなく、どうやら以前にもこの同じ件に関して他の人が助けを求めていたようです。リンク。
ここに、私がこれまでにまとめたコードと、発生したエラーを示します。アドバイスをいただければ幸いです。また、私はまったくの初心者なので、素人にもわかる言葉で説明していただく必要があると思います。
答え1
問題は、タスクを実行するためにナビゲートする iframe があることです。
インラインフレーム:
コードではこれをナビゲートする必要があります。たとえば、次のようになります。
Option Explicit
Public Sub SubmitInfo()
Dim IE As New InternetExplorer
With IE
.Visible = True
.navigate "https://www.w3schools.com/asp/showasphtmfile.asp?filename=demo_reqquery"
While .Busy Or .readyState < 4: DoEvents: Wend
With .document.getElementsByTagName("iframe")(0).contentDocument
.querySelector("input[type=text]").Value = "blah"
.querySelector("input[type=submit]").Click
End With
'.Quit '<== Remember to quit application
End With
End Sub