nameが変化するボタンを臨機応変にClickするには?

解決


yuriyuri  2007-03-26 09:52:57  No: 135871

Excel(2000 or 2003) VBAを用いてIEを操作させ自動操作をさせています。

時にそのHPのログイン中でキャンセルのボタンを押す必要がある場合、nameが時にcancel1であったりcancel2であったりします。
諸条件により変化しますのでエクセルのセルにメモリとして代入しています。
IE.Document.All("cancel1").Click
これは通りますが
Cells(3,3)にcancel1が入っている場合
abcSTR = Cells(3,3)
IE.Document.All(abcSTR).Click
これはエラーがでてしまいます。
IE.Document.All.Item("cancel1").Click
についても同様なことがいえます。
おそらくこのコードではストリング変数は使えないのではないかと思っております。

必ずcancel1ボタンを押すのであれば前述のような固定の書き方でよいのでしょうが、状況により可変させる必要がある場合、どのようにすればよいのでしょうか?

少々面倒ですがループ処理によりItem(0)⇒Item(1)⇒・・・等にてinnerHTMLを解析させてストリング変数がnameに該当する番号のItem(X)をクリックさせるのが正解なのでしょうか?

Excel  VBA歴半年未満の初心者です。
どんなささいなアドバイス・ヒントでも結構なので、どうぞよろしくお願いします。


魔界の仮面弁士  2007-03-26 10:12:05  No: 135872

『内部処理形式 String のバリアント型』を渡してみては?

あと、name が決まっているのであれば、all コレクションではなく、GetElementsByName メソッドを利用するのも手です。


yuriyuri  2007-03-27 05:21:10  No: 135873

有名なMVPの方に直接指導していただけるとは、なんと光栄なことでしょう!

Dim abcSTR   As String
としていたのを
Dim abcSTR   As Variant
に変更したところ、見事に通りました。

感謝感謝です。
魔界の仮面弁士さんに幸多からんことを!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加