mihajlovic's blog

わーい

「ツール作ってみた」

会社の仕組みでWEBブラウザ上から問合せができるんだけど、
そこまでログインしたり階層が深かったり、指定できる抽出条件がしょぼかったりで
めちゃめちゃ使いにくいものがあった。
↓こんなデータ

NO 申請者 申請日 内容 納期 受付者
0001 Aさん 2009/03/20 これこれしてほしい 2009/04/10 Zさん
0002 Bさん 2009/03/31 これを変えて欲しい 2009/04/15 Tさん
0003 Cさん 2009/03/31 これこれしてほしい 2009/04/20 Uさん

でも、DBは直接見れず、ASPなのでそれ以上掘っていくこともできず。
↑知識がないだけかもしれない。


ということで、ツールを作ってみた。
分解して考えると、
(1)その問合せの画面である条件を指定し、データを抽出。
 画面に表示されたデータをコピーして、あるEXCELに貼り付け。
(2)EXCEL上のボタンを押すとマクロが動いて、
 (1)で貼り付けたデータを整形し、新しいデータが発生していた場合は、
 そのデータをメールの本文にして、自分宛にメール送信する。


↑の処理を1日何回か自動で行うというツールを作ってみた。

(1)について

UWSCというツールを使って、ブラウザなどの動きを制御することに。
http://www.uwsc.info/:TITLE
最初は、「記録」ボタンを使って、
IE起動
・ユーザーID、パスワードを入力してENTER
・リンクをたどって、問合せ画面まできたら、抽出条件入力項目に必要な条件を指示
・表示したデータをコピーして、あるEXCELのファイルを起動

というようなことをしてみた。
確かにこれで出来るんだけど、マウスの動きがトレースされるので、
動きを見る分には面白いんだけど、まどろっこしいw


ということで、試行錯誤しながら組んでみた。
↓を参考にさせてもらいました。
http://www.simazaki.com/~izumi/blog/archives/2007_10_1_507.html:TITLE
苦労したのは、問合せ画面が別ウインドウで上がるので、
その画面のコントロールをしたいんだけど(抽出条件を指示したりするため)、
その画面のコントロールがうまく取れなくて、
しょうがなく、マウスのクリックを使ったこと。
もうちょっと良い方法があると思うんだけどなぁ。

(2)について

先に出来ててすでにテスト済み。
マクロでの整形は、不必要な情報の削除と注意が必要な日付のものは色をつけるなど簡単なもの。
それに合わせて、新しい情報についてはメールを送るように。
↓を参考にさせてもらいました。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_080.html:TITLE
メールを一度でも送ったものは再度送らないように、メールを送った「NO」を
別シートに一覧として持っておいて、一覧にない「NO」のデータをメール送信するような仕組み。


これでちょっとは楽になるかな。
メールを送るようにしたことによって、
いろんな人にも配信できるし。
まぁ、ちょっとずつ改造していこう。