WEBブラウザを簡単に自動操作しよう(sendkeys編)

VBAなどで業務の自動化を進めているとインターネットの所定の場所からデータをダウンロードするような工程を自動化したいと考えることもあるかと思います。
CSVファイルなどに直接的にアクセス出来れば比較的簡単なのですが、ログイン⇒所定の抽出条件を選択⇒CSVファイル作成などの工程を自動化したいとなると簡単ではありません。
ただ結構仕事ではあるあるな作業なので、今回出来るだけ簡単にその作業を自動化する方法をご紹介します。

今回は一番覚える工程が少なく且つ応用が利くsendkeysです。
良い点だけではなく問題点もあるので合わせてご参照ください。

精度の高いブラウザ操作方法は次回書きますが、今回書くsendkeysも一部で使いますので事前にざざっとみてもらう方が良いと思います。

WEB自動化についての注意点

sendkeysについて

具体的なやり方



WEB自動化についての注意点

WEBブラウザを自動操作する方法はいくつか有りますが、共通する課題として「サイトの構造が変わると動作しなくなる」という点です。
そのため一度自動化が完成してもそれで終了というわけではなく、対象サイトが変更したりすると作り直しが必要になることもあります。

そのためうまく動作しなかった場合のプランBというのは事前に考えておく方がいいです。

ちなみにsendkeysのコマンド自体はこちらを参照ください。

【外部リンク】

sendkeys

まずsendkeysについてですが、これは直接的にWEBサイトに関係するプログラムではなく、「キー入力情報を送る」というプログラムです。
VBAでも利用可能でこれを使うとあらゆる場面でキー入力情報をプログラムでニュ力することが可能になります。
VBAを使い利点として事前にセルに入力されている情報をsendkeysで所定の場所に入力することも可能です。
これを使えばVBAで直接操作することのできないchromeなどのWEBブラウザも理屈上は自在に操作することが出来るわけです。

他にもいろいろと応用も可能なので覚えておくと意外と役立つはずです。

具体的なやり方

やり方は比較的簡単です。
ブラウザ起動自体はWSHを使うとして、起動後のchromeなどのブラウザをキーボード操作する内容をそのままVBAにsendkeysキーで記述するだけです。

TabやEnter、スペースを使えばマウスを使わなくても大体の操作は出来るはずです。

重要なのはwaitTimeを設定し、画面切り替え時の待機時間を設定しておくことです。
遅延することも考慮して少し長めに設定しておくべきです。

また覚えることが少なくて済む一方で注意点もあります。
それはアクティブになっている画面にキー情報を入力する、ということです。
例えば、

1 chromeを所定URLで起動する

2 ユーザーIDとパスワード情報をsendkeysで入力する。

という場合にchrome起動中にエクセルファイルを編集していると、IDとパスワードはエクセル画面に入力されるということです。
そのためsendkeysでブラウザを自動操作する際にはマウスやキーボードで他の操作を使わないようにする、もしくは対象のアプリケーションをアクティブにした直後にsendkeys情報を送るようにするなど工夫が必要になります。

このようにあくまでキーボード情報を入力するだけなので、ブラウザの状態と連携しているわけではありません。
しかしブラウザに限らず様々なアプリケーションで利用可能なので工夫して状況応じてうまく使うようにしましょう。



シェアする

フォローする