今回は前回書いた自動ログインの解説をします。
CREATEOLEOBJ
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("https://ssl.seesaa.jp/www/pages/welcome/login/input")
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4
CREATEOLEOBJはCOMオブジェクトを生成します。COMオブジェクトの説明は難しいので割愛しますが、興味のある方は参考サイトにCOMオブジェクトについてのリンクを貼ってあるので読んでみてください。
戻値 = CREATEOLEOBJ(オブジェクト名)
オブジェクト名のところに「"InternetExplorer.Application"」を入れてあげると Internet Explorer を起動します。
戻値は適当なわかりやすい名前をつけてあげるといいです。ここでは「IE」としています。
IE.visible = True
visibleプロパティは Internet Explorer を見えるようにするか見えないようにするかを設定できます。値を「True」から「False」にすると Internet Explorer が見えなくなります。ただ、「False」にするとうまく動かなかったりするので「True」にしておいてください。
IE.navigate(URL)
Navigateメソッドの「URL」に開きたいページのURLを入れると指定したURLのページが開きます。
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.readystate=4
webサイトを開くまで待機するスクリプトです。
これを記載しないと、次のスクリプトが実行されてページを読み込んでいる間にスクリプトが終了してしまいます。
IESETDATA
IESETDATA( IE, "メールアドレス", "member__email" )
IESETDATA( IE, "パスワード", "member__password" )
IESETDATA( IE, 1, "", " サインイン " )
Internet Explorer 上のテキストボックスなどに値を設定します。
戻値 = IESETDATA( IE, 値, Name, [Value, 番号] )
IE は今回はCREATEOLEOBJの戻値で「IE」としているので「IE」と記載してあります。例えば「IE_Seesaa」とした場合は「IE_Seesaa」と書いてください。
値 はテキストボックスなどに入れる文字だったり値を書きます。
Name はテキストボックスなどにNameがついていれば識別するために書きます。
Value はNameがない場合にValueが記載されていれば書きます。
今回の場合、「サインイン」のイメージボタンにNameがないのでNameは「""」と書き、Valueに「 サインイン 」と書いています。
値については「メールアドレス」、「パスワード」はテキストボックスなのでテキストボックスに入れる値を書きます。
「サインイン」の値に「1」と書いてあるのは、自信はないのですが「 True = 1 」ということで「1」と書くとボタンが押されるのかな?と思っています。(実験したところ、値が「0」の場合はボタンは押されません。)
気づいている方もいると思いますが、スクリプトを書くときの注意点として数値の場合は「""」は不要です。文字列については「""」で囲ってあげる必要があります。
戻値は書く必要はないのですが、スクリプトを書く際に動作がうまくいかない場合に戻値を設定してあげると、うまくいっているかを調べることができます。その場合は例えば戻値に「IE_test」と書き、その下らへんに「msgbox(IE_test)」と書いてあげるとメッセージボックスが表示されるようになり、うまく行った場合は「1」、うまくいかなかった場合は「0」と表示されるので動作などを検証するときに役に立ちます。
テキストボックスなどのNameなどの調べ方
ブラウザを自動操作する場合に重要なのがテキストボックスやボタンなどを識別することだと思います。たぶん、UWSCを使ってみようという方はある程度HTMLなどもわかると思いますが念のため調べ方を書いておきます。
まず、自動操作をしたいページを開きます。
Internet Explorer の場合は自動操作したいページ上で右クリックをし「ソースの表示」を選択するとメモ帳などでそのページのHTMLが開きます。
今回の場合はログインを自動化するのでページ上で操作したいことは 1.メールアドレスを入力する 2.パスワードを入力する 3.サインインボタンを押す 4.サインアウトリンクボタンを押す となると思います。
操作したい項目の値を調べる必要があります。
例えばメールアドレスを入力するテキストボックスは画面上では名前が表示されていないので項目名である「メールアドレス」を調べると近くにメールアドレスのテキストボックスのHTMLがあります。その値を調べてあげればよいです。
<TD valign="top" class="px12 label"> メールアドレス <a href="javascript:void(0);" onClick="go('/www/pages/man/?name=member__email');" onMouseOver="helpView('help_member__email')" onMouseOut="helpClose('help_member__email')"><img src="img/cmn/hatena.gif" width="13" height="13" border="0" alt="?H"></a><span id="help_member__email" class="help"><b>メールアドレス</b><BR>例)xxxxxxx@xxxxx.jp<BR>
登録されるメールアドレスを入力して下さい。</span>
</TD>
<td valign="top" class="px12">:</td>
<TD align="left" class="px12"><input value="" name="member__email" type="text" size="30" tabindex="1" style="ime-mode: disabled;"><BR></TD>
上記のソースがメールアドレスのテキストボックス周辺のHTMLです。赤字の部分がテキストボックスのソースになります。
この場合はNameに「member__email」とあるのでNameに「member__email」と書いてあげればよいのです。
<input value=" サインイン " type="submit" tabindex="3" class="input-submit">
これが「サインイン」ボタンの部分のソースです。
この場合はNameが設定されておらず、valueに「 サインイン 」とあるのでvalueに「 サインイン 」と書きます。
こんな要領でテキストボックスなどのNameなどを探せば良いと思います。
IELINKとその他
IELINK( IE, "サインアウト" )
IELINKは Internet Explorer 上のリンクボタンを選択しクリックしてくれます。
戻値 = IELINK( IE, リンク表示文字, [番号] )
リンク表示文字にリンクの文字を書きます。
IE.QUIT はInternet Explorer を閉じます。
EXITEXIT はプログラムを終了させます。
参考サイト
COM オブジェクトとは
COMオブジェクト
COM の基礎
変数 (プログラミング)

