getElementsByClassnameの配列
未読分:3件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#3 2014年11月12日(水)22時39分 From: ブニャット | 返事 削除 変更 |
管理人のメッセージ(#2)への返事 お返事が遅くなってしまい大変申し訳ありません。 次からは可能な限りコードを載せて質問をさせていただきます。 DOMのLengthプロパティを知りませんでした。 思っていたことが解決できてすっきりしました! ありがとうございます。 |
Message#2 2014年11月5日(水)08時53分 From: 管理人 | 返事 削除 変更 |
どのようなコードを記述したのかが分かるとより回答がしやすいです。 可能であればコードの公開よろしくお願いします。 また、おそらくやりたいことは以下のようなことだと思うのですが、あっていますか? データ数をLengthプロパティで取得してfor〜Nextステートメントで処理をしています。 Sub sample() Dim objIE As InternetExplorer Dim cnt As Integer 'InternetExplorerで本サイトを起動 Call ieView(objIE, "http://www.vba-ie.net/") 'ClassName数取得 cnt = objIE.document.getElementsByClassName("txt").length For i = 0 To cnt - 1 '処理 Next i End Sub ただ、ループ処理をしたいのであれば、for Each〜Nextステートメント利用した方が 処理は簡単かと思います。 Sub sample() Dim objIE As InternetExplorer Dim objTag As Object 'InternetExplorerで本サイトを起動 Call ieView(objIE, "http://www.vba-ie.net/") For Each objTag In objIE.document.getElementsByClassName("txt") Debug.Print objTag.innerText Next End Sub |
Message#1 2014年11月2日(日)16時13分 From: ブニャット | 返事 削除 変更 |
いつもこちらにお世話になっております。 getElementsByClassnameメソッドはIEに表示されている 指定したclassタグの配列を返すとの事だったので、 Variant型の変数にひとまず代入→Ubound関数で配列の数を出す →for next のカウンタの最大値にそれを設定してループ といったことを考えてみました。 しかし配列を変数に入れるところでエラーになってしまいます。 Ubound関数とペアにしてForでループさせたいのですが、 そういった使い方はできるのでしょうか。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降