- ベストアンサー
エクセル ログインが必要なページのwebクエリ
エクセル ログインが必要なページのwebクエリ XP microsoft visual basic 6.0 です 可能かどうかもわからず頑張りましたができませんでした やりたいこと VBAを使い yahooメール に ID と pass を入力してログイン ログイン後 yahooメール受信箱 のアドレスをエクセル webクエリ に登録 webクエリ の設定で自動更新 yahooメールにメールを受信したらエクセルに自動で表示 よろしくお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ログインは出来ている、ということですね? 私が書いたコードで説明すると 変数lctURLにログインしたページのURLを取得しています。 そこで、QueryTables.AddメソッドのConnectionを Connection:="URL;" & lctURL とすればどうでしょうか。
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
---------------------------------------- この前も出ていましたね。回答を書きかけて、しょせん、回答内容が、クレームをつけるようなスタイルになってしまうので、やめてしまいました。VBAの相当の実力がないとできないと思いますが、単刀直入にいうと、Web クリエにいれるなど、無理だと思ったほうがよいです。Web クエリは、一定のオープンURLの表形式になっているものを取得するものです。 それと、VBAで、Webメールを受信するのに、ログインして、そこを取ることは、ありえないとは言わないけれども、Webメールの一覧までは取り出せても、その先が簡単にできないはずです。 どうやら、VB6と書いていたので、別の方法があると思いましたが、VBAのようなのですが、プログラミングをするなら、MAPIで取るか、Basp21を使えばよいのではないでしょうか?それをExcelに出すなら、そちらに出せばよいと思います。セキュリティが気になるなら、MAPIの方がよいと思いますが、Basp21のほうが、取り扱い易いです。しかし、それと当時に、JIS以外のDecode やHTMLメールのことも考えなくてはなりません。
お礼
回答ありがとうございます 実際にやりたいことはyahooメールではなく他のことなんです 具体的な例えを用いたほうが説明をしやすいと思い今回はyahooメールを上げさせていただきました 例えクレームのような形でも新たな閃きに繋がることもございますので目に止まった時に一言いただきたかったです 今回は xls88さん のおかげで解決を見ることができました まだまだ初心者ですので新たに質問させていただくこともあるかとは思いますが、再度目にした際は厳しい意見でも、クレームでも結構です。お時間が許すようでしたらご回答ください。よろしくお願いします
- xls88
- ベストアンサー率56% (669/1189)
どこまでできているのですか? とりあえず。ログインは下記でどうでしょうか。 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?.src=ym" 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&.done=http://www.yahoo.co.jp" _ , 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&.done=http://www.yahoo.co.jp" の部分をいじるなどして思考錯誤したのですが、どうしてもログイン前のページが表示されてしまい完成には至りませんでした 説明不足ですみません CreateObject("InternetExplorer.Application")をつかいログインしたページを webクエリ に登録する方法をよろしくお願いします
お礼
すみません!出来ていました! ありがとうございます! 大変助かりました 教えていただいたものをもとにもう少し勉強したいと思います ありがとうございました
補足
回答ありがとうございます 教えていただいた通りやってみたところ、エクセルには 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で保護されています がわからないのですが もしかしてセキュリティー上、設定できないと言うことなのでしょうか