dポイントプレゼントキャンペーン実施中!

エクセル ログインが必要なページのwebクエリ

XP microsoft visual basic 6.0 です
可能かどうかもわからず頑張りましたができませんでした

やりたいこと
VBAを使い yahooメール に ID と pass を入力してログイン
ログイン後 yahooメール受信箱 のアドレスをエクセル webクエリ に登録
webクエリ の設定で自動更新
yahooメールにメールを受信したらエクセルに自動で表示

よろしくお願いします

A 回答 (3件)

ログインは出来ている、ということですね?



私が書いたコードで説明すると
変数lctURLにログインしたページのURLを取得しています。
そこで、QueryTables.AddメソッドのConnectionを
Connection:="URL;" & lctURL
とすればどうでしょうか。

この回答への補足

回答ありがとうございます

教えていただいた通りやってみたところ、エクセルには

Yahoo! JAPAN
Yahoo! JAPAN - ヘルプ
重要なお知らせ
さらに使いやすく便利になった「ログインアラート」があなたのYahoo! JAPAN IDを守ります!いつでもどこでも不正ログインを検知できるようにケータイのメールアドレスを設定しよう!
続けるにはパスワードを
再入力してください。
パスワードの再確認
フィッシングの危険を回避フィッシングの危険を回避
ログインシールを設定しましょう。
ログインシールとは?
パスワード再確認フォーム
Yahoo! JAPAN ID:
~~~~~~~'ID
パスワード:
SSLで保護されています
別のYahoo! JAPAN IDでログイン
Yahoo! JAPAN IDガイドYahoo! JAPAN IDガイド
パスワードの再確認について
ログインできない
パスワードの再確認とは?
セキュリティー保持のため、定期的にパスワードの再確認を行っています。
詳しくはこちらをご覧ください。
表示されているYahoo! JAPAN IDは正しいですか?
~~~~~~~さんではない場合は、正しいIDでログインしなおしてください。
別のYahoo! JAPAN IDでログイン
プライバシーの考え方 - 利用規約 - ガイドライン - ご質問・お問い合わせ
Copyright (C) 2010 Yahoo Japan Corporation. All Rights Reserved.

見にくくてすみません
上記のように表示され 外部データの更新 を押しても変化ありませんでした
パスワード: 下の SSLで保護されています がわからないのですが
もしかしてセキュリティー上、設定できないと言うことなのでしょうか

補足日時:2010/01/12 12:33
    • good
    • 2
この回答へのお礼

すみません!出来ていました!

ありがとうございます!

大変助かりました

教えていただいたものをもとにもう少し勉強したいと思います

ありがとうございました

お礼日時:2010/01/12 12:44

----------------------------------------


この前も出ていましたね。回答を書きかけて、しょせん、回答内容が、クレームをつけるようなスタイルになってしまうので、やめてしまいました。VBAの相当の実力がないとできないと思いますが、単刀直入にいうと、Web クリエにいれるなど、無理だと思ったほうがよいです。Web クエリは、一定のオープンURLの表形式になっているものを取得するものです。

それと、VBAで、Webメールを受信するのに、ログインして、そこを取ることは、ありえないとは言わないけれども、Webメールの一覧までは取り出せても、その先が簡単にできないはずです。

どうやら、VB6と書いていたので、別の方法があると思いましたが、VBAのようなのですが、プログラミングをするなら、MAPIで取るか、Basp21を使えばよいのではないでしょうか?それをExcelに出すなら、そちらに出せばよいと思います。セキュリティが気になるなら、MAPIの方がよいと思いますが、Basp21のほうが、取り扱い易いです。しかし、それと当時に、JIS以外のDecode やHTMLメールのことも考えなくてはなりません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます

実際にやりたいことはyahooメールではなく他のことなんです
具体的な例えを用いたほうが説明をしやすいと思い今回はyahooメールを上げさせていただきました

例えクレームのような形でも新たな閃きに繋がることもございますので目に止まった時に一言いただきたかったです

今回は xls88さん のおかげで解決を見ることができました

まだまだ初心者ですので新たに質問させていただくこともあるかとは思いますが、再度目にした際は厳しい意見でも、クレームでも結構です。お時間が許すようでしたらご回答ください。よろしくお願いします

お礼日時:2010/01/12 13:02

どこまでできているのですか?


とりあえず。ログインは下記でどうでしょうか。

Dim myIE As Object
Dim myURL As String
Dim lctURL As String
Dim myTime As Variant

myURL = "https://login.yahoo.co.jp/config/login_verify2?. …
Set myIE = CreateObject("InternetExplorer.application")
myIE.Visible = True
myIE.Navigate2 myURL

Do While myIE.Busy = True And myIE.ReadyState <> 4
DoEvents
Loop

With myIE
'//ID、パスワード
.Document.all.tags("input").Item(23).Value = "xls88"
.Document.all.tags("input").Item(24).Value = "********"
'//ログイン
.Document.all.tags("input").Item(26).Click
End With

Do While myIE.Busy = True And myIE.ReadyState <> 4
DoEvents
Loop

lctURL = myIE.LocationURL 'Webクエリに登録するURL

'Webクエリ

Set myIE = Nothing

この回答への補足

回答ありがとうございます

CreateObject("InternetExplorer.Application")をつかい、Navigate にて ID と pass を入力しログインするところまではたどり着いたのですが、そのログインしたページをwebクエリに登録する方法がわかりませんでした

webクエリは マクロの記録 を使い取得したものを参考に

With ActiveSheet.QueryTables.Add(Connection:= _
"URL;https://login.yahoo.co.jp/config/login?.src=www& … _
, Destination:=Range("A1"))
.Name = "www.yahoo.co.jp"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With

"URL;https://login.yahoo.co.jp/config/login?.src=www& … の部分をいじるなどして思考錯誤したのですが、どうしてもログイン前のページが表示されてしまい完成には至りませんでした

説明不足ですみません
CreateObject("InternetExplorer.Application")をつかいログインしたページを webクエリ に登録する方法をよろしくお願いします

補足日時:2010/01/12 09:53
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています