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

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

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

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

863閲覧

JavascriptでWEBページの様々なボタンを押下したい

hoitya

総合スコア14

VBA

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/09/02 15:28

編集2019/09/03 01:06

表題の件、押下したいボタンは以下のものです。

1.  <a href = "/testsite/testpage/">テストページ</a> == $0 の「テストページ」のボタンを押したい。 2. <div class="botton"> <input type= "submit" name="login" value="ログイン" > == $0 の「ログイン」のボタンを押したい。 3.  <span class="testbotton">ログイン</span> の「ログイン」のボタンを押したい。 4.  <select name="swich_team"> ==0 <option value="1a2b3c4d-5e6f-7g8h9i" selected> team1</option> <option value="9i8h7g-6f5e-4d3c2b1a" selected>team2</option> </select>  ・・・      の「team2」のボタンを押したい。

2に関しては
.getElementById("submit").Click
とするとログインはできるのですが

エラー 91 「オブジェクト変数または With ブロック変数が設定されていません。」

が出てきます。

マクロはおろかHTMLの構成もこの前勉強し始めたばかりですが
知識のある方ご教示頂けませんでしょうか?

何卒よろしくお願いいたします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/09/02 16:07

マクロとは何ですか? JavaScript のことであれば、マクロのタグは消して JavaScript のタグを付けた方がよさそうです。あと、質問文も編集して「マクロ」を「JavaScript」に直した方が良いと思います。
hatena19

2019/09/03 00:50

エラーメッセージから判断すると、Excelのマクロ(VBA)の話だと思われますので、もしそうなら、タグに Excel と VBA を追加するといいと思います。
hoitya

2019/09/03 01:07

ありがとうございます!修正しました!
退会済みユーザー

退会済みユーザー

2019/09/03 01:16

hatena19 さんのコメントを見て、エラーメッセージ「エラー 91 オブジェクト変数または With ブロック変数が設定されていません」でググってみましたが JavaScript ではなくて VBA の話のようです。 JavaScript と VBA の違い、分かってますか? VBA の話であれば、自分でもエラーメッセージでググってみてください。解決のヒントがあると思います。
guest

回答3

0

ベストアンサー

Excelのマクロ(VBA)だと推測しましたので、その前提で回答します。

まず、WEBサイトを外部から自動操作することを「webスクレイピング」といいます。ということで、まずは、「VBA webスクレイピング」をキーワードにWEB検索すればいろいろ解説サイトが見つかりますので、それで勉強してみてください。

サイト上のボタンをクリックするにしても、その実装法によって、方法が異なりますので、いろいろな方法を試してみる必要があります。

ボタン要素に id が付加してあれば、.getElementById("id名").Clickで動作する場合がおおいです。

1.  <a href = "/testsite/testpage/">テストページ</a> == $0

これはリンクなので、単純にそのURLへ移動する処理をすればいいでしょう。VBAならNavigateメソッドで指定URLへ移動できます。(WEB検索すればサンプルコードは見つかります。)

3.  <span class="testbotton">ログイン</span>

class属性が付加されてますので、それで要素を取得できます。ただし、idと違ってclassは複数存在する可能性がありますので、何番目の要素かを指定する必要があります。

指定class属性の最初の要素をクリックするには .getElementsByClass("class名")(0).Click となります。getElements・・・と複数形になっていることに注意してください。

何番目が不明、不定の場合は、For Next で一つずつテキストをチェックして「ログイン」のものをクリックするようにします。

4.  <select name="swich_team"> ==0

「VBA webスクレイピング select」でWEB検索してみましょう。

2. <div class="botton">

<input type= "submit" name="login" value="ログイン" > == $0

2に関しては

.getElementById("submit").Click
とするとログインはできるのですが
エラー 91 「オブジェクト変数または With ブロック変数が設定されていません。」

ログインができているのなら、その後の処理で失敗しているのでしょう。
その部分のコードを提示しないと回答は不可能です。

投稿2019/09/03 01:21

hatena19

総合スコア33699

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

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

0

コメントにある通り、マクロとはなにか、JavaScriptなのかというのがそもそもの問題ですが、
JavaScript、もしくはJavaScriptと同じ仕様なのであれば

タグ名:Document.getElementsByTagName("○○○")
クラス名:Document.getElementsByClassName("○○○")

上記の記述で取得できます。

投稿2019/09/03 00:52

H40831

総合スコア973

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

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

0

VBAの話でしょうか...?
VBAはしたことないのですが、 通常のJavaScriptでクリックする記述は以下です。

js

1document.getElementById('example').click()

投稿2019/09/02 16:12

Newbi

総合スコア163

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問