
【やりたいこと】
VBAを使用してサイトにログインし、ログイン後のHTMLドキュメントを取得したい。
【条件】
・エクセル以外のソフトは使用せず、VBAのみを使用する(VBA内でjavascriptなどの記述はOK)
・IEなどブラウザも仕様しない
【教えてほしいこと】
上記やりたいことを上記条件でどのように記述するかをしりたいです。
※IEを操作する方法は知っています。
【試したコード】
自分が試したのは下記コードです。
myURLのところに「ログイン画面のURL」
myBodyのところに「member_username=ログイン名&password=パスワード」
をいれています。
member_usernameはログイン名を入れる要素のname名称
passwordはパスワードを入れる要素のname名称
です。
Sub Sample()
Dim document As IHTMLDocument7
Set document = myPost("POST", ログイン画面のURL, False, "member_username=ログイン名&password=パスワード")
'→docuemtでログイン後のページのhtmlドキュメントを取得している想定
End Sub
Function myPost(myMethod As String, myURL As String, mySync As Boolean, myBody) As IHTMLDocument7
Dim httpReq As Object
Set httpReq = CreateObject("MSXML2.XMLHTTP")
With httpReq
.Open myMethod, myURL, mySync
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.send myBody
End With
Do While httpReq.readyState < 4
Sleep 10
DoEvents
Loop
With CreateObject("ADODB.Stream")
.Open
.Position = 0
.Type = 1 'adTypeBinary
.write httpReq.responseBody
.Position = 0
.Type = 2 'adTypeText
.Charset = "UTF-8"
Dim ReturnDom As IHTMLDocument7
Set ReturnDom = New HTMLDocument
ReturnDom.write .ReadText
.Close
End With
Set PostDom2 = ReturnDom
Set httpReq = Nothing
Set ReturnDom = Nothing
End Function
【参考にしたサイト】
www.tohoho-web.com/ex/http.htm#request
http://outofmem.tumblr.com/post/63052619242/vbae …でhttp通信
http://piyopiyocs.blog115.fc2.com/blog-entry-433 …
【動作環境】
OS 名:Microsoft Windows 10 Pro
OS バージョン:10.0.16299 N/A ビルド 16299
OS 製造元:Microsoft Corporation
プロセッサ:Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~2400 Mhz
BIOS バージョン:TOSHIBA Version 2.20 , 2012/06/22
物理メモリの合計:3,988 MB
Excel バージョン:14.0.7192.5000(32ビット) Microsoft Office Standard 2010の一部
以上、よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
以下のようなHTMLファイルでログインできますか?
<form action="https://login.mail.goo.ne.jp/id/authn/Login">
<input name="uname" value="***">
<input name="pass" value="****">
<input type="submit">
</form>
ありがとうございます!
いただいた例では私のユーザー名とパスワードでログイン後のドキュメント取得ができました!
しかし、あるサイトではこのようにaction=""となってるものもあります。
この場合の対応方法はおわかりでしょうか?
<form name="frm" onsubmit="disableSubmit(this);submit2(this)" action="" enctype="application/x-www-form-urlencoded" method="post">
No.4
- 回答日時:
この辺りの書籍をご覧になると、そんな単純な物ではない事が分かると思います。
(言語はVBAでなくて、Javaですが)
No.2
- 回答日時:
> Set document = myPost("POST", ログイン画面のURL, False, "member_username=ログイン名&password=パスワード")
「ログイン画面のURL」 ではなく、
<form action=
のURLを指定する
ありがとうございます。
試してみました。
もともと
myURL="https://****.jp "
だったのを<form action=・・・・の
myURL="https://****.jp/login.pl "
に変更したところ、
帰ってきたdocument (outerHTML)は
<BODY>データがありません</BODY>
でした。
ログインされた後の画面にはなりませんでした。
同じことですが、念のため、
https://****.jp/login.pl
をブラウザの検索窓にいれて表示したところ、画面には「データがありません」と表示されるのみでした。
No.1
- 回答日時:
ご回答ありがとうございます。
いえ、機体したものがきません。
.statusはページの状態のようです。
.responsebodyがHTMLドキュメントのはずですが、httpReq.Open strMethod, strURL, bAsyncで指定しているstrURLの内容と同じです。
つまりログイン後のページではなく、ログイン前のページがかえってきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
XMLHTTPを用いて認証が必要なURLから情報をダウンロードする
XML
-
日本語の文字化けを直す方法
Visual Basic(VBA)
-
VBA ログイン後csvファイルをダウンロードする
Excel(エクセル)
-
-
4
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
5
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
6
エクセルVBAの自動変換機能?
Visual Basic(VBA)
-
7
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
8
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
windows統合認証とform認証の併用
-
INPUTにnameがない場合のsubmit
-
XMLHTTPを用いて認証が必要なUR...
-
Global.asaについて
-
特定の端末からのみWebシステム...
-
PHPからWindowsログインユーザ...
-
getParameterで値が取得できず...
-
Webページ上のボタン等の位置を...
-
ポストバック(__doPostback)へ...
-
テキストボックスのクリックで...
-
コネクション・セッション・ト...
-
JSPでボタンを押したら、文字が...
-
ただいま勉強始めたての初心者...
-
aspxをhtmlに変換する方法について
-
VBAでこれってどういう意味でし...
-
javaでのアクセスカウント
-
Page_Load時にボタンクリックイ...
-
VBAで一時中断したプログラムの...
-
formの送信ボタンをテキストに...
-
DVD-Rの「セッションを閉じる」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の端末からのみWebシステム...
-
PHPからWindowsログインユーザ...
-
えきねっとのログイン画面はどこ?
-
ログインフラグがわかりません。
-
オープンIDでのサービス間の...
-
足跡が・・・
-
webアプリケーション開発の考え方
-
ASP.NETで作成されたログインペ...
-
phpmyadminでDBが作成できない。
-
勝手にログアウトされてしまい...
-
Global.asaについて
-
バッチファイルでログイン後の...
-
ログイン画面作成
-
UWSCで基本認証をクリアしたい...
-
ASP.NET MVC 最初からあるログ...
-
ログインクッキーの安全性
-
セッション管理について(同時...
-
複数のヤフーIDの画面ウィンド...
-
WebBrowserでGmailに自動ログイン
-
facebookのapiでログイン
おすすめ情報