広告

posted by fanblog

2016年12月24日

VBAでInternet Explorer自動操作の勉強


pythonのpywinautoでウインドウのユーザーインターフェースを
自動操作しようと思ってちょこちょこプログラミングの勉強をしていると
control_identifiersを実行して子ウインドウのクラスやらタイトルやらを
見たときに、「Internet Explorer_Server」なるクラスを発見する。

yahoo検索03.JPG

その子ウインドウの中に表やらボタンがあっても
その情報が取得できない。。。

そこでボタンの場合は
下記のような感じで
Typekeysでタブを一定回数送信して
Enterを送信することで
ボタンを押すことができた。

for i in range(0,19):
dialog1.TypeKeys("{TAB 1}")
time.sleep(0.01)
for i in range(0,2):
dialog1.TypeKeys("{ENTER}")

ただ、子ウインドウの中に表があったときは
お手上げである。
タブで行けないところは何もできない。

下記のサイトを参考にすると
その子ウインドウのURLまでは取得できる。
本当にInternet Explorerの子ウインドウ的なものらしい。
ただその先は何もできない。

>Python : Automating Internet Explorer_Server
http://stackoverflow.com/questions/35778771/python-automating-internet-explorer-server

ということで
結果、あきらめた。

ただ、、、
VBAならできるのではないかと
思う。
こんな本もあることだし。

>Excel VBAでIEを思いのままに操作できるプログラミング術 Excel




VBAでできるようになったら
pythonに還元すればよい。
今は久しぶりにVBAをやろう。

で書いてみたのはこんな感じ。
yahooで日本語のキーワード複数で検索を
VBAで行う。



日本語のキーワードは
URLエンコードが必要である。
UTF-8に変換するために、
下記のサイトを参考にした。

>参考サイト:VBでURL エンコード
http://www.geocities.co.jp/SilkRoad/4511/vb/sample/ue_utf8.txt

下記のように
エクセルシートの
A1〜A10にキーワードを
打って検索ボタンを押せばよいよう
マクロ登録しておく。
※最近見ていたドラマ「逃げ恥」が
 最終回で視聴率20%超えを果たした
 ことに敬意を表して、検索キーワードは
 写真のような感じ。

yahoo検索02.JPG

ボタンを押すと
下記のように検索結果が表示される。

yahoo検索01.JPG

ほんとは起動済のinternet explorerに接続したい。
最終的にはInternet Explorer_Serverの自動操作へのヒントにしたいから。

さらに先の先のことを妄想すると
ほんとはgoogleを自動操作したいところである。
chromeを自動操作したいところである。
会社がそうだから。
ただ、まずは多少違っても実践が大事。
追々できるようになろう。

posted by iyoder at 13:20 | Comment(1) | TrackBack(0) | プログラム
この記事へのコメント
iyoderさん

参考になる記事をありがとうございます。
勉強する際のお手本にさせて頂きます。

> chromeを自動操作したいところである。
selenium と ChromeDriver でできそうですね。

今後も python 関連の記事を楽しみにしています。
Posted by yuntas at 2017年01月10日 15:28
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
http://fanblogs.jp/tb/5751340
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
最新記事
<< 2018年12月 >>
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
カテゴリーアーカイブ
ファン
プロフィール
最新コメント
×

この広告は30日以上新しい記事の更新がないブログに表示されております。