🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

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

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

3399閲覧

VBAからのIE操作で、「.Click」が効かないのはなぜ?

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

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

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2021/01/31 15:34

編集2021/01/31 15:38

前提・実現したいこと

VBAでスクレイピングツールを作成しています。

下記ページの「SIZE GUIDE」という項目をクリックしたいのですが、なぜか「.Click」が効きません。

https://store.moncler.com/en-nl/short-outerwear_cod6630340695939643.html#dept=EU_View_All_Outerwear_Men_SS
(商品画像の右側、画面右端の「SIZE GUIDE」)

なお、取得したいデータは下記のとおりです。
「SIZE GUIDE」クリック→開いたページの「Item Measurements:」を取得


こちらは、元々は1年前に作成したコードで、1年前~数日前までは問題なく動作していました。
数日前になって急にクリックできなくなり、
クリックできない→ページが開かない→目的のデータが見つからないということで、
その後の処理でエラーが出るようになってしまいました。
HTMLを確認しても、正常に動作していたときと変わった点は見られません。

なぜ「.Click」が効かないのか、
また、「.Click」で対応ができない場合、何か代替の手段はあるか等、
もし何かお分かりになることがありましたら教えていただきたいです。

(うっすらとですが、IEを使っているせいでは?と疑っているのですが、諸事情によりSelenium等の使用は難しいです……)

処理する箇所のHTMLソースコード

<div class="item__size-select-and-guide__guide mesmerize-size-guide-wrapper size-guide-visible" data-sku="0400583397304" data-abtest-button-label="What is my size?"> <script src="https://widget.measmerize.com/embed" async="" data-meas-embed="true" data-brand-id="a8e9f7de-d443-4725-9d96-7480ae609f29" data-garment-code="6630340695939643" data-meas-initialised="1612104371985"></script> <!--このbuttonをクリックしたい--> <button data-size-guide-link="6630340695939643"> <span class="icon"></span> <span class="text">Size Guide</span> <span class="value"></span> </button> </div>

該当のソースコード

Sub test() Dim ie As InternetExplorer Dim objTag As Object Set ie = New InternetExplorer ie.Visible = True ie.navigate "https://store.moncler.com/en-nl/short-outerwear_cod6630340695939643.html#dept=EU_View_All_Outerwear_Men_SS" Do While ie.Busy Or ie.readyState <> 4 DoEvents Loop 'ページ全体にbuttonタグが多数あるため、For Eachで対象のbuttonを探している For Each objTag In ie.document.getElementsByTagName("button") If InStr(objTag.outerHTML, "data-size-guide-link") > 0 Then objTag.Click ' Wait (300) Exit For End If Next End Sub

試したこと

  • ページ全体でbuttonが多数あるが、他のbuttonはクリックできるのか?と思い、試したところ、他のbuttonはクリックできる。目的のbuttonだけクリックできない。

  • 66番目に出てくるbuttonであることが分かったため、

ie.document.getElementsByTagName("button")(66).Clickを試したが状況変わらず。

  • Firefoxの要素の調査を眺めていると、該当箇所クリック時に下記URLにアクセス?していることが判明。

ただ、取得したいのは「Item Measurements:」の項目で、下記URLではその項目が空欄になっている。「Item Measurements:」内のデータはどこから引っ張ってきているのか力不足で分からない。
https://store.moncler.com/SizeHelp/Index?code10=6630340695939643&siteCode=MONCLER_NL&langId=4

環境

Windows10 64bit
Excel 2019 64bit
Internet Explorer 11

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

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

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

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

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

guest

回答1

0

接続先のページ内の構成が変更されたのではないでしょうか?
一度、ページ内の定義を見直してみては?

~追記~
どうも、IEからのクリック自体が効かなくなってるみたいですね。
マクロ使わずに手動で検索かけて開いても
クリック出来ないみたいです。

投稿2021/02/01 01:35

編集2021/02/01 03:45
WhiteTempest

総合スコア404

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問