ツイッターに自動ログイン(ログアウト)「twLogIn」の解説
さてツイッターの自動ログイン(ログアウト)について説明してきましたが、今回は自動ログイン(ログアウト)をサブルーチン化させます。
前回の方法では、1アカウントしかログイン処理ができませんが、サブルーチン化させることで、どんなアカウントでも簡単にログイン処理をすることが可能になります。
ツイッターに自動ログイン(ログアウト)のサブルーチン
Sub twLogIn(objIE As InternetExplorer, _
twitterId As String, _
twitterPass As String, _
Optional ieType As String = "ieView")
'IEバージョン9以上
If IeVerCheck > 8 Then
'ツイッターログイン画面表示
If ieType = "ieView" Then
Call ieView(objIE, "https://twitter.com/login")
ElseIf ieType = "ieNavi" Then
Call ieNavi(objIE, "https://twitter.com/login")
End If
'ログインチェック
If objIE.LocationURL <> "https://twitter.com/login" Then
'ツイッターログアウト処理
Call ieNavi(objIE, "http://twitter.com/logout")
Call tagClick(objIE, "button", "ログアウト")
Call ieNavi(objIE, "https://twitter.com/login")
End If
'ツイッターログイン処理
Call formText(objIE, "session[username_or_email]", twitterId)
Call formText(objIE, "session[password]", twitterPass)
Call tagClick(objIE, "button", "ログイン")
'IEバージョン8以下
Else
'ツイッターログイン画面表示
If ieType = "ieView" Then
Call ieView(objIE, "https://mobile.twitter.com/i/guest")
ElseIf ieType = "ieNavi" Then
Call ieNavi(objIE, "https://mobile.twitter.com/i/guest")
End If
'ログインチェック
If objIE.LocationURL <> "https://mobile.twitter.com/i/guest" Then
'ツイッターログアウト処理
Call ieNavi(objIE, "https://mobile.twitter.com/account")
Call tagClick(objIE, "input", "ログアウト")
Call ieNavi(objIE, "https://mobile.twitter.com/i/guest")
End If
'ツイッターログイン処理
Call formText(objIE, "username", twitterId)
Call formText(objIE, "password", twitterPass)
Call tagClick(objIE, "input", "ログイン")
End If
End Sub
ツイッターに自動ログイン(ログアウト)のマクロ
Sub sample1()
Dim objIE As InternetExplorer
Call twLogIn(objIE, "★ツイッターID★", "★ツイッターPASS★")
End Sub
Sub sample2()
Dim objIE As InternetExplorer
Call ieView(objIE, "http://www.vba-ie.net/")
Call twLogIn(objIE, "★ツイッターID★", "★ツイッターPASS★", "ieNavi")
End Sub
実行結果
引数は以下の4つが設定されています。
引数名 | データ型 | 内容 | 値の事例 | 初期値 | 省略 |
---|---|---|---|---|---|
objIE | InternetExplorer | IEオブジェクト | objIE,objIE2 | × | |
twitterId | String | ツイッターのログインID文字列 | "★ツイッターID★" | × | |
twitterPass | String | ツイッターのログインパスワード文字列 | "★ツイッターPASS★" | × | |
ieType | String | IEオブジェクトの状態文字列 | "ieView", "ieNavi" | "ieView" | ● |
「objIE」「twitterId」「twitterPass」は必須項目で、「objIE」は複数ページを表示させる場合に「objIE」「objIE2」と複数オブジェクトを生成します。
「twitterId」にはツイッターのログインIDを、「twitterPass」にはツイッターのログインパスワードを設定します。
次に「ieType」ですが、こちらはIEオブジェクトの状態によって、処理を分岐させるものです。
新規でIEオブジェクトを作成する場合は「ieView」を指定し、「ieViewサブルーチン」で処理します。
既存のIEオブジェクトがある場合は「ieNavi」を指定し、「ieNaviサブルーチン」で処理させます。
こちらは初期設定が「ieView」で設定させており、Optionalを付けて宣言した引数なので、省略することができます。
'IEバージョン9以上
If IeVerCheck > 8 Then
(省略)
'IEバージョン8以下
Else
(省略)
End If
ほぼ前回と同様の内容ですので簡単に説明していくとまず、IEのバージョンをチェックする「ieVerCheck」を利用して、Webブラウザのバージョンで処理を分岐させています。
'ツイッターログイン画面表示
If ieType = "ieView" Then
Call ieView(objIE, "https://twitter.com/login")
ElseIf ieType = "ieNavi" Then
Call ieNavi(objIE, "https://twitter.com/login")
End If
「ieType」で「ieView」「ieNavi」サブルーチンのどちらかでツイッターのログイン画面を表示させます。
'ログインチェック
If objIE.LocationURL <> "https://twitter.com/login" Then
'ツイッターログアウト処理
Call ieNavi(objIE, "http://twitter.com/logout")
Call tagClick(objIE, "button", "ログアウト")
Call ieNavi(objIE, "https://twitter.com/login")
End If
ログインが保持されている場合はログアウト処理をする必要がありますので、こちらでその処理をしています。
'ツイッターログイン処理
Call formText(objIE, "session[username_or_email]", twitterId)
Call formText(objIE, "session[password]", twitterPass)
Call tagClick(objIE, "button", "ログイン")
こちらでは、ログインするための情報を入力し、ログインボタンをクリックしています。「twitterId」にはツイッターログインIDが、「twitterPass」にはツイッターログインパスワードが格納されています。
続いてIEのバージョンが8以下の場合を見ていきましょう。
'ツイッターログイン画面表示
If ieType = "ieView" Then
Call ieView(objIE, "https://mobile.twitter.com/i/guest")
ElseIf ieType = "ieNavi" Then
Call ieNavi(objIE, "https://mobile.twitter.com/i/guest")
End If
ツイッターのログイン画面を表示させます。
'ログインチェック
If objIE.LocationURL <> "https://twitter.com/login" Then
'ツイッターログアウト処理
Call ieNavi(objIE, "https://mobile.twitter.com/account")
Call tagClick(objIE, "input", "ログアウト")
Call ieNavi(objIE, "https://mobile.twitter.com/i/guest")
End If
こちらもバージョン9以上の処理と同様でログインチェック後、ログアウト処理をしています。
'ツイッターログイン処理
Call formText(objIE, "username", twitterId)
Call formText(objIE, "password", twitterPass)
Call tagClick(objIE, "input", "ログイン")
こちらも同様にログイン処理をしていきます。
ここまでがツイッター自動ログインのサブルーチン化についての解説でした。
こちらの内容は前回とあわせて理解できたかと思います。
ツイッター操作には必須処理ですので、是非活用ください。
次の記事: VBAのIE操作でツイッターアカウント取得1-1 >>
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。