
お世話になります。
Excel2016 32bit Windows10
IE自動操作に取り組んでいます。まだ勉強が足りず、ボタンのクリックができません(画像Gカレンダー保存ボタン)。
InputTypeでもaタグでもありません。idで取得はでき、roleがボタンでタブ選択もできるのに、VBAでクリックができません。
この手のボタンはVBA操作不可能なのでしょうか。初歩的な質問かもしれませんが、みなさまのお力添えを頂きたいです。
<div class="goog-inline-block goog-imageless-button" role="button" tabindex="0" style="user-select: none;">
<div class="goog-inline-block goog-imageless-button-outer-box">
<div class="goog-inline-block goog-imageless-button-inner-box"><div class="goog-imageless-button-pos">
<div class="goog-imageless-button-top-shadow"></div>
<div class="goog-imageless-button-content">保存</div>
</div>
</div>
</div>
</div>

No.2ベストアンサー
- 回答日時:
こんにちは。
すみません。画像が、ものすごく小さかったのが災いしたのと、
「:jc.save_top」って、wrapper となっている所をみると、何かと組み合わさっていると思います。それをクリックされようとしていたので、なんだろうと考えしまいました。
>(画像Gカレンダー保存ボタン)
カレンダーの赤い「保存ボタン」をクリックですか?
質問の回答になっているのか、あまり確信がありません。
初歩の初歩としては、
<div class="goog-imageless-button-content" unselectable="on">保存</div>
ここから、
With objIE
Set buttons = .Document.getElementsByClassName("goog-imageless-button-content")
For Each n In buttons
If n.innerText Like "保存*" Then ''= "保存" でもよい
n.Click
Exit For
End If
Next n
End With
で、行けるのではないでしょうか。
もちろん、オブジェクト配列になっているはずですから、それで、何番目か探して、直接、buttons(9).Clickとしても行けるかとは思います。
質問と食い違っていたら、補足をつけてください。
それと、余談なのですが、Googleで、IEを使うのは抵抗ありませんか?フルに動かないと思います。かと言って、Google Chrome をVBAで扱う方法が、なぜか確立できていませんね。Selenium VBAを使うことにはなっているのですが、いろいろやってみて、どうやらバージョンが遅れていることに気が付きました。前から、ずっと遅れているようです。
ありがとうございます!まさに求めていた操作が実現しました。理解も深まり他の操作にも拡げることができました。
おっしゃる通りで、chromeでgoogleを利用するのがベストだと思います。ただ今の職場が極端にパソコンに弱い為、せいぜいエクセルが限界です(chromeのスプレッドシートなど、操作うんぬん以前に聞いただけでアレルギー反応が出そうです)。そのためVBAを基準にせざるをえなく、必然的にIEを使わざるを得ない状況です。
No.1
- 回答日時:
この手のことは行ったことがないので、具体的にVBAでどの様に記述するのかはわからないのですが……
getElementByIdではなく、
GetElementsByClassNameで、クラス属性"goog-imageless-button-content"のdivタグを取得して、
clickするのではないでしょうか?
たぶん、クラス属性が"goog-imageless-button-content"のタグは1個だけだと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
cnt <= (others => '0'); の意...
-
VBAでの素数の求め方
-
Excel VBAでのIE操作でクリック...
-
htmlの文字が縦書きになる
-
含む含まないという概念自体の...
-
複数のボタンを等間隔に、かつ...
-
ulタグやliタグの中でbrタグ...
-
リストマーカーをボックス内に...
-
ドロップダウンメニューが隠れ...
-
htmlのolやulなどlistにtitleや...
-
<li>タグの数が増えすぎたので...
-
ボタンをセル内一杯に表示させ...
-
html/cssの、navを2段にする...
-
画面を縮小するとカラムが落ち...
-
HTML要素のid/class名の長さに...
-
HTML属性での「""」 「''」違い
-
番号付きリスト(<Ol><Li>・・...
-
divタグ内のコンテンツが重なっ...
-
HP 画像の一部にリンクでその...
-
クロームとサファリでスクロー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cnt <= (others => '0'); の意...
-
pythonでのカーソル移動がずれる
-
CSSで背景色を指定しても、読み...
-
回り込みfloatの連続?
-
csvファイルについて
-
コーディングで「float」のclea...
-
Excel VBAでのIE操作でクリック...
-
ASP.NETでプレーンなページに文...
-
CSSで高さを自動にするとレイア...
-
htmlを組んでいるのですが、DIV...
-
.htaccessについて
-
検索結果がツリー状に表示され...
-
現在作成しているページで、一...
-
秀丸で複数行コメントアウトを...
-
忍者ツールズのカウンタを右寄...
-
CSSメニューボタンのセンター配置
-
safariで見るとページ上部に余...
-
css リンクの色が全部変わって...
-
RubyのHTMLパーサーで複数のタ...
-
CSSのdivタグの名称には決まり...
おすすめ情報
トライしたコードです。
作成したURLを開き、表示が完了したのちにIDで取得し、クリックする流れをイメージしました。
Dim ie As InternetExplorer
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "作成したURL(文字数の都合割愛)"
Do While ie.Busy Or ie.ReadyState < READYSTATE_COMPLETE
DoEvents
Loop
'/////課題の部分//////
Dim htdoc As HTMLDocument
Set htdoc = ie.Document
htdoc.getElementById(":jc.save_top").Click