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

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

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

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

Q&A

解決済

2回答

532閲覧

VBAによるボタン操作

rgon

総合スコア9

VBA

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

0グッド

1クリップ

投稿2018/11/19 03:02

編集2018/11/19 05:52

前提・実現したいこと

VBAを利用してサイトのダウンロードフォームからファイルをダウンロードしたいです。

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

HTML

1<input class="ui-button ui-widget ui-state-default ui-corner-all" id="button1" 2role="button" aria-disabled="false" onclick="return callOutPut();" type="button" value="ダウンロード">

このダウンロードボタンを押したいのです。

ログイン画面のログインボタンと同様に試したのですが
上手くいきません。

HTML

1<button tabindex="3" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" 2role="button" aria-disabled="false" type="submit"><span class="ui-button-text">ログイン</span></button>

これに対して

VBA

1 For Each obj In ieDoc.getElementsByTagName("span") 2 If obj.innerText = "ログイン" Then 3 obj.Click 4 Exit For 5 End If 6 Next

このようにログインしました。

同様にダウンロードしたく試行錯誤したのですが
上手くいきませんでした。

Excel2016を使用しています。

よろしくお願いします。

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

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

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

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

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

m.ts10806

2018/11/19 03:06

今現在のコードをご提示ください。また操作しようとしているhtmlもこれだけでは判断しづらい部分があります。もう少し全体わかるように提示いただけませんか?コードを提示する場合はマークダウンのcode機能をご利用ください。
guest

回答2

0

idがついているので
別にfor eachでまわさなくても
ieDoc.GetElementById("button1").click
ってやったらいいように思います。私も初心者なのでご質問の意図に沿ってなかったらごめんなさい。

投稿2018/12/19 02:22

sumire_cl

総合スコア228

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

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

0

ベストアンサー

spanはクリックする要素としては不適当なのでbuttonにしては?

投稿2018/11/19 06:06

m.ts10806

総合スコア80850

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

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

rgon

2018/11/19 06:18

```VBA For Each obj In ieDoc.getElementsByTagName("buttun") If obj.innerText = "ダウンロード" Then obj.Click Exit For End If Next ``` 試してみたのですがページが移動しませんでした。
m.ts10806

2018/11/19 06:20

buttonのinnerTextは「ダウンロード」ではないですよね。 そのif文通ってるかデバッグしてみましたか?
rgon

2018/11/19 07:07

申し訳ございません。 innerTextがどれか教えてもらうことは可能ですか。
m.ts10806

2018/11/19 07:09

この場合、innerTextを取得するのは不適当です。 本来はclassとかidとかを取得して確認します。ひとまず「type」を取得して「submit」かどうかで判定しては? というかデバッグはしましたか? ブレイクポイントを設置すればどのような情報が取得されているか確認できるはずです。
rgon

2018/11/19 07:39

すいません。プログラミング初心者のなので、とりあえず形になるものをネットを見ながらVBAで使って作っている段階です。デバックも調べたのですがよくわかりませんでした。 今回は形になればそれでいいので、mst10806さんの考えるコードを教えていただくことはできませんでしょうか。 よろしくお願いします。
m.ts10806

2018/11/19 08:36

ひとまず「vba ブレイクポイント」で調べてください。 またコードを書くのは構いませんが少し提示の情報が少なすぎます。 htmlの取得部分ですとかもう少し全体がわかるコードを記載してください。あとhtmlはご自身で修正可能なものかどうかとか。 ※個人的な事情を言うと外出先でこのコメントをしているため、お急ぎでしたら別角度からアプローチされた方が良いかもしれません ただ、やり方としては「ボタンをクリック」なのでキーワードにして調べてやってみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問