Excel VBA テキストボックス自動入力
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#2 2015年9月10日(木)17時01分 From: VBAマスター | 返事 削除 変更 |
Set objInpTxt = objIE.Document.getElementsByName("item_name") これは複数存在しますので、そのあとにインデックスを指定する必要があります。 例えば、 Set objInpTxt = objIE.Document.getElementsByName("item_name")(0) な感じです。 |
Message#1 2015年9月9日(水)08時33分 From: 困っています | 返事 削除 変更 |
Excel VBA テキストボックス自動入力 VBA初心者です。 通販サイトの商品登録を自動化したく、マクロを組んでいるのですがエラーが出てしまいます。 やりたいのは IEで登録ページを開く→エクセルのデータをページのテキストボックスへ飛ばす という動作なのですが、 エラー13:型が一致しません と出てしまいます。 #If VBA7 Then Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr) #Else Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long) #End If Sub sample() Dim objIE As InternetExplorer Dim timeOut As Date Dim objInpTxt As HTMLInputTextElement Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://〜" timeOut = Now + TimeSerial(0, 0, 20) Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Sleep 1 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 20) End If Loop timeOut = Now + TimeSerial(0, 0, 20) Do While objIE.Document.ReadyState <> "complete" DoEvents Sleep 1 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 20) End If Loop Set objInpTxt = objIE.Document.getElementsByName("item_name") objTxt.Value = Worksheets("Sheet2").Range("B2") End Sub 知恵を貸して下さい。よろしくお願いします。 補足 エラー箇所補足です。申し訳ありません。ご指摘の通り、 Set objInpTxt = objIE.Document.getElementsByName("item_name") なのですが、(0)を入力すると今度は「424:オブジェクトが必要です」と出てしまいます。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降