Poker online Indonesia コミュニティの成長により、プレイヤー同士が情報を共有し、おすすめのプラットフォームを見つけやすくなっています。SNSグループ、フォーラム、オンラインコミュニティは、ユーザーの選択や好みに大きな影響を与える重要な存在です。こうした議論の中では、インタラクティブな機能や競争性の高いゲームプレイで知られるプラットフォームを紹介する際に、login Nirwanapoker が頻繁に取り上げられています。

Toto Macau コミュニティでは、さまざまな形式や結果について活発な情報交換が行われています。こうした議論の中で、live draw macau は詳細なデータや最新情報を確認するための重要な話題として取り上げられています。これらの情報は、利用者が最新の動向を把握しながら、整理されたデータをより効率的に活用するのに役立っています。

成功するゲーミングプラットフォームは、信頼性、優れたユーザー体験、そして豊富なゲームラインナップによって支えられています。idnslot は、直感的で使いやすいインターフェースを提供し、プレイヤーがスムーズにコンテンツへアクセスできる環境を実現しています。また、slot online プラットフォームはさまざまなデバイス向けに最適化されており、スマートフォン、タブレット、デスクトップパソコンのいずれを利用する場合でも、いつでも安定した快適なゲーム体験を楽しむことができます。

Bagi penggemar permainan kartu online, idn poker menjadi salah satu istilah yang cukup dikenal dan banyak dicari ketika ingin memperoleh informasi mengenai permainan poker. Pemain dapat mempelajari berbagai aspek dasar, seperti aturan permainan, kombinasi kartu, posisi pemain, serta istilah yang umum digunakan agar lebih memahami mekanisme permainan secara menyeluruh.

situs slot online menjadi salah satu istilah yang banyak digunakan ketika mencari informasi mengenai permainan slot melalui internet. Sebelum memilih sebuah platform, pengguna sebaiknya memahami terlebih dahulu cara kerja permainan, informasi layanan, keamanan situs, serta ketentuan yang berlaku di wilayah masing-masing.

Excel・VBA デキる解る!IE操作編 【Webサイトのテキストボックスへデータを入力する方法】

この記事は約8分で読めます。

VBA操作編4回目 サムネイル

どうも、マサヤです!

この記事は、VBAでのIE操作が初めて or 慣れていない方向けに『Webサイト・システムの情報を取得・設定する方法』をお伝えしていく連載記事となってます!

 

前回は、Webサイトの全ページから情報を一括取得する方法を紹介しました!

 

IE操作編 4回目~7回目に渡って、Webサイト・システムへデータを入力・選択する方法をお伝えします!

今回は、検索バーやフォーム等のテキストBOXに対して、データを入力する方法をご紹介しますよ!

もし、あなたがVBAでのIE操作が初めてなら、IE操作編の1回目から順に読んでくださいね。

本記事で習得できること

  • Webサイト・システムへのテキスト入力方法。

 

では、張り切っていきましょう!

 

スポンサーリンク

【動画】Webサイトへデータを入力

 

最初に動画で動きを確認しましょう!

VBA IE テキストデータ入力

 

あいもかわらず当ブログを使用しています)笑

処理としては、当ブログの右側にある検索バーにパスタと入力・検索し、結果で表示されたページデータを取得(各記事のカテゴリ・タイトル・URL)の上、Excelへ出力しています。

動きを確認したところで、次はコードを見ていきましょう!

 

【コード】Webサイトへデータを入力・選択するコード

 

コードはこちら!

Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long)
Sub IeSiteSetTextData() '検索バーにテキストを入力する

'IEオブジェクトを作成
Dim ie As InternetExplorer
Set ie = CreateObject("InternetExplorer.Application")

'開きたいURLを変数に代入
Dim strUrl As String
strUrl = "https://mmm-program.com/"

'IEを表示(見えるようにする)
ie.Visible = True

'指定したURLをIEで開く
ie.Navigate strUrl

'サイトの読み込みが完了するまで待つ
Do While ie.Busy = True Or ie.readyState <> READYSTATE_COMPLETE
    DoEvents
Loop

'文章が長くなるためHTMLコレクションを変数へ格納
Set ieDoc = ie.document

'検索バーにC2セルにある検索ワードを入力
ieDoc.getElementsByClassName("search-edit")(0).Value = Range("C2")

'虫メガネアイコンをクリックする
ieDoc.getElementsByClassName("search-submit")(0).Click

'待機:クリック後2秒待つ処理。
Sleep 2000

'サイトの読み込みが完了するまで待つ
Do While ie.Busy = True Or ie.readyState <> READYSTATE_COMPLETE
    DoEvents
Loop

'Excelの行カウント変数
rowCnt = 7

'ページ内の記事数のコレクションを取得
Set posts = ieDoc.getElementById("main").getElementsByClassName("entry-card-wrap")

'全要素を確認するので、今回はEachで繰り返し処理。
For Each post In posts

    '記事カテゴリを取得してExcelへ出力
    Cells(rowCnt, 2) = post.getElementsByClassName("cat-label")(0).innerText
    '記事タイトルを取得してExcelへ出力
    Cells(rowCnt, 3) = post.getElementsByClassName("entry-card-title card-title e-card-title")(0).innerText
    '記事URLを取得してExcelへ出力
    Cells(rowCnt, 4) = post.getAttribute("href")
    
    'Excelへ出力行を次の行へ
    rowCnt = rowCnt + 1

Next

'オブジェクトを閉じる
ie.Quit

'メモリからオブジェクトを破棄
Set ie = Nothing
 
End Sub

 

長いコードに見えますが、実際は26行目~30行目部分が主な追加です。

あとは、前回までのコードを流用しています。

では、変更箇所を見ていきましょう!・・・・・・その前に、IE操作編 2回目にもやりましたが、入力・取得したい箇所の使える要素名の探し方を復習しましょう。

 

デベロッパーツールで取得・入力したい要素を探す方法

 

今更ですが、ネット情報を取得するためにWebサイトの要素名を調べる必要があります。

その際、便利なのがデベロッパーツールで、HTML知識があまり無くとも取得したい要素名を探すことができます。

 

【動画】デベロッパーツールの起動・要素の探し方

まずは、動画で一連の流れを確認してみましょう。

※このままだと見辛いので、↓をクリックで拡大すると解りやすいです。

デベロッパーツールの起動・使い方

 

では、手順を見ていきましょう。

 

手順1:デベロッパーツールを起動する

Chomeを使ってますが、IIEでも同様のことが可能です。

◆Google Chomeでの起動方法
Webサイト内でF12もしくは右クリック⇒検証でデベロッパーツールが起動します。
◆IEでの起動方法
Webサイト内でF12もしくは右クリック⇒要素の検査でデベロッパーツールが起動します。

 

手順2:矢印で入力・取得したい箇所を選択

ツール内の左上に四角を矢印で指したようなマークをクリックします。

この状態でWebサイト内を入力・取得したい箇所をクリックすることで、選択したHTML部分のコードがハイライト(背景が青くなる)されます。

 

手順3:使える要素名を探す

ハイライトされたコードを確認して使える要素名を探しましょう。

当ブログの検索BOXのHTMLを例にして、探し方を確認してみましょう。

<input type="text" placeholder="サイト内を検索" name="s" class="search-edit" aria-label="input" value="">

 

使えそうなのはname=”s”とclass=”search-edit”の2つですね。

今回紹介しているコードではclassのseach-editを、getElementsByClassNameメソッド使いコレクションを取得しています。

別の方法として、classではなく、name=”s”でも取得できます。

その際は、getElementByNameメソッドを使って下記のように書きます。

'classの代わりにnameを使用したコード
ieDoc.getElementsByName("s")(0).Value = Range("C2")

 

さて、HTML要素の探し方を説明したところで、コードの説明に入っていきましょう!

 

スポンサーリンク

Valueで検索バーにテキストを入力する

 

Valueプロパティを使うことで、テキストボックスへデータを入力することができます。

下記コードでは、エクセルのC2に入っているパスタというワードを、検索バーに入力しています。

※コード:26~30行目
'検索バーにC2セルにある検索ワードを入力
ieDoc.getElementsByClassName("search-edit")(0).Value = Range("C2")

'虫メガネアイコンをクリックする
ieDoc.getElementsByClassName("search-submit")(0).Click

 

Clickメソッドに関しては前回で説明したように、リンクやボタンなどクリック出来る箇所に対して、文字通りクリック出来るメソッドです。

 

For Eachで取得した要素を全て取得する

 

結果的に動きとしては同じことですが、使う制御文をFor Eachに変更しました。

前回まではFor Nextを使ってましたが、取得した要素に対して順番に関係なく全て確認したい場合などはFor Eachで記述するとスッキリします。

今回のFor Eachのコード ※コード47~59行目
'全要素を確認するので、今回はEachで繰り返し処理。
For Each post In posts
'・・・ここは省略
next
前回までのFor nextのコード
'上記で取得した記事数分処理を繰り返す ※カウントは0から始まるため-1する
For i = 0 To postCnt - 1
'・・・ここは省略
next

 

逆に要素に対して逆順で繰り返したい、指定した要素番号(添え字)から開始させたいといった場合はFor Eachでは対応できないので、For Nextを使いましょう。

 

まとめ

 

4回目のIE操作編はテキストの入力方法をお伝えしました!

今回のコードを流れをまとめると下記になりすね。

◆処理の流れ

  1. テキストを入れたい箇所をデベロッパーツールで確認して、使える要素名を調べる。
  2. 調べた要素名に対して、getElement関連のメソッドで参照する。
  3. Valueプロパティでテキストを入力する。
  4. 検索ボタンなどの実行ボタンがあればCliclkメソッドを使い処理する。

 

今回で、取得だけでなくWebサイトに対して、データを入力できるようになりました。

ここまで来ると、結構自由にIE操作出来てるようになっています。

 

さて、次回はラジオボタンをチェック・判別する方法についてお伝えしていきます!

コメント