質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

1回答

939閲覧

VBA IDが可変するボタンクリックの方法。

zer0zero7

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/06/10 07:46

前提・実現したいこと

下記のHTML内の「カートヘ」のボタンをVBAでクリックし実行したいのですが、
●●●●●●の部分が商品ページによって変化するため変数にしたいのですがエラーとなります。

質問は
1)下記のHTMLの「カートヘ」をクリックする方法
2)ページによって異なるIDに対応する方法
の二点です。

<ul class="bookMenu2"> <li class="addCart"> <a href="javascript:void(0);" class="cart dialogBtn_cart" id="●●●●●●">カートへ</a></li> <input type="hidden" class="cms●●●●●●CheckBox" value="●●●●●●"> </ul>

●●●●●● の部分は商品番号となっており商品により変化します。

発生している問題・エラーメッセージ

エラーメッセージ

実行エラー438
オブジェクトは、このプロパティまたはメソッドをサポートしていません。

該当のソースコード

VBA

1ソースコード 2For Each cart_button In objIE.document.getElementsByTagName("input") 3 If cart_button.Value = "●●●●●●" Then 4 cart_button.Click 5 Exit For 6 End If 7 Next 8 9 10

試したこと

試しに●●●●●●の部分を変数でなく値を直接入れてみましたがエラーになります。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenshirou

2020/06/11 07:24

ちなみに、そのサイトでは機械的なアクセス(ユーザーが実際にクリックするのではなく、プログラム的にクリック等を実行すること)は許可されているのでしょうか? もし許可されていない場合は、何らかの法に抵触する恐れがあります。
guest

回答1

0

クリック対象のHTMLタグが

<a href="javascript:void(0);" class="cart dialogBtn_cart" id="●●●●●●">カートへ</a>

なのであれば、これはaタグなので、このタグを検索したいのであれば、

For Each cart_button In objIE.document.getElementsByTagName("input")

ではなく、

For Each cart_button In objIE.document.getElementsByTagName("a")

です。

これを踏まえると、「カートへ」と書かれたaタグを探してクリックしたいのであれば、

VBA

1For Each cart_button In objIE.document.getElementsByTagName("a") 2 If cart_button.InnerText = "カートへ" Then 3 cart_button.Click 4 Exit For 5 End If 6Next

のようになるでしょう。
ただ、(実際のHTMLの内容を見ていないのですが)もしかしたら、cart_button.InnerTextで得られる文字列の前後に改行文字やスペース文字が含まれている場合があるかも知れませんので、それらを考慮して文字列比較をした方が良いと思います。

投稿2020/06/11 07:51

kenshirou

総合スコア772

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問