VBAでSkyDriveにログインする方法

このQ&Aのポイント
  • VBAを使用してSkyDriveにログインする方法について教えてください。
  • VBAでSkyDriveにログインする際に「オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)」というエラーが発生しています。
  • ソースコードを確認しましたが、「PageID」が間違っているかどうかわかりません。正しい記述方法を教えていただけますか?
回答を見る
  • ベストアンサー

VBAでSkyDriveにログインしたい

VBAでSkyDriveにログインしたいのですが、 --------------------------------------------------------- Sub SkyDriveにログインする() Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "https://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=1340539242&rver=6.1.6206.0&wp=MBI_SSL_SHARED&wreply=https:%2F%2Fskydrive.live.com%2F%3Flc%3D1041&lc=1041&id=250206&mkt=ja-JP&cbcxt=sky" '表示終了まで共通_表示待ち Do While objIE.Busy = True DoEvents Loop objIE.Document.all.PageID.Value = "aaa" objIE.Document.all.passwd.Value = "aaa" '表示終了まで共通_表示待ち Do While objIE.Busy = True DoEvents Loop objIE.Document.Forms(0).submit Set objIE = Nothing End Sub --------------------------------------------------------- を実行すると、 objIE.Document.all.PageID.Value = "aaa" の部分で、 【オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)】 というエラーになります。 たぶん、「PageID」が間違ってると思うのですが、ソースを見てもよくわかりません。 ご教授いただけないでしょうか? ご回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.1

下記の二ヶ所を修正すればできるようですね。 objIE.Document.all.PageID.Value = "aaa" -> objIE.Document.all.login.Value = "aaa" 「PageID」の代わりに「login」 objIE.Document.Forms(0).submit -> objIE.Document.Forms(0).Item(3).Click 「submit」の代わりに「Item(3).Click」

ji23aw1
質問者

お礼

す、すごい! 出来ましたー!!! 大変助かりました。ありがとうございます。

関連するQ&A

  • 次回からのログインを省略にチェックを入れたくない

    vbaで教えてgoo(Goo知恵袋)にログインを試みています。 ログインする事はできたのですが 出来れば「次回からのログインを省略」にチェックを入れたくなのです。 Goo知恵袋はデフォルトでチェックが入っています。 自分で作ったコードは、 --------------------------------------------------------- Sub test() Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://otasuke.goo-net.com/mypage#tabs" '表示終了まで共通_表示待ち Do While objIE.Busy = True DoEvents Loop objIE.document.all.mailaddress.Value = "" objIE.document.all.Password.Value = "" '表示終了まで共通_表示待ち Do While objIE.Busy = True DoEvents Loop objIE.document.all("login_skip")(1).Checked = False objIE.document.Forms(1).submit Set objIE = Nothing End Sub --------------------------------------------------------- です。 objIE.document.all("login_skip")(1).Checked = False でエラーになってしまいます。 ご教授よろしくお願いします。

  • VBAで教えてgooに自動ログインしたい

    Sub 教えてgoo() Dim objIE As Object Const READYSTATE_COMPLETE As Long = 4 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://login.mail.goo.ne.jp/id/authn/LoginStart?Site=oshiete.goo.ne.jp&Success=http%3A%2F%2Foshiete.goo.ne.jp%2F" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all("ログイン").Click End Sub --------------------------------------------------------- を実行してみても、 objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" objIE.document.all("ログイン").Click の部分がエラーになってしまいます。 教えてgooは、VBAでログインできないように規制されてるのでしょうか?

  • vbaでyahooメールの受信メールの一覧を読み取

    vbaでyahooメールの受信メールの一覧を読み取る方法はありますか? Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://login.yahoo.co.jp/config/login?logout=1" 'ログアウトする Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Navigate "https://login.yahoo.co.jp/config/login?.src=&.pd=&.done=http%3A//www.yahoo.co.jp/" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Document.all.UserName.Value = "" objIE.Document.all.passwd.Value = "" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Document.Forms(0).submit Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Navigate "http://jp.mc1003.mail.yahoo.co.jp/mc/welcome?.rand=6i0loli2li7s6&noFlush&YY=940152127#_pg=showFolder&fid=Inbox&order=down&tt=84&pSize=25&.jsrand=6381767" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop Debug.Print objIE.Document.Body.innerHTML Set objIE = Nothing End Sub これでログインまではできるのですが、その後のソースを読み取っても受信メールの一覧は読み取れません。 ログイン後に、vbaではなく手動でWEBクエリをやってソースに書き出してみましたがやはり受信メールだけは読み取れません。 WEBクエリならフォルダの一覧は読み取れました。 VBAで読み取るのは不可能なのでしょうか?

  • VBAでWEBのリンクをクリックしたい

    取引先のWebサイトから請求書のデータを取得しようと思い、該当ページに到達すべくコードを書いてみました。 以下のコードを F8 キーでステップ実行を続けると目的を達するのですが、ボタンに割付て実行するとログイン後のページを表示した後目的のリンクをクリックできません。 状態待ちかと思い待機コードをビシバシ突っ込みましたが通常実行では目的のリンクをクリックしてくれません。 どうしたらよいでしょうか? Sub サイトオープン() Set objIE = CreateObject("InternetExplorer.Application") With objIE .Navigate "https://www2.hogehoge/Login.jsp" .Visible = True 'IE待機 Do While .Busy = True DoEvents Loop 'テストボックスへ入力 .Document.all.Item("userId").Value = Range("b1").Value .Document.all.Item("password").Value = Range("b2").Value '送信ボタンクリック .Document.forms(0).submit     '←ここまではOK    'IE待機 Application.Wait 3000 '1000分の1秒 Do While .Busy = True DoEvents Loop     ’フレーム内のリンク確認 For Each objLink In objIE.Document.frames("right").Document.Links If objLink.Href = "https://www2.hogehoge/BillList.jsp?init=false&search=???&page=Top" Then '←F8ステップ実行ではOKだが、通常処理では判定されない?      'IE待機 Do While .Busy = True DoEvents Loop  ’リンクをクリック          objLink.Click  ’←要はこれをしたい!        'IE待機      Application.Wait 3000 '1000分の1秒 Do While .Busy = True DoEvents Loop Exit For End If Next End With Set objIE = Nothing End Sub

  • オブジェクト変数または With ブロック変数が設定されていません。

    下記の様に組みましたが、下記の★印の所で止まる様な事があります。 毎回止まるわけではないのですが、止まる時に「オブジェクト変数または With ブロック変数が設定されていません。」と表示されますが、 原因は何か?どの様にすればいいのか?など詳しく教えてください。 よろしくお願いします。 Sub test() Dim objIE As Object Dim strCOMMENT As String Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://" While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'データをセットする 'htmlドキュメント フォーム(0番目) アイテムに転記(代入)する objIE.Document.forms(0).Item("username").Value = "11111" objIE.Document.forms(0).Item("password").Value = "11111" While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.all.subm.Click While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop For Each link In objIE.Document.Links If link.href = "http://" Then link.Click End If Next While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'タイトル・コメントの読み込み strtitle = Sheets("sheet1").Range("k7") strCOMMENT = Sheets("sheet1").Range("k9") Application.WindowState = xlMinimized While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.forms(0).Item("title").Value = strtitle objIE.Document.forms(0).Item("comment").Value = strCOMMENT While objIE.readystate <> 4 While objIE.busy = True DoEvents ' Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Document.all.submit.Click While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop 'フォーム(0番目)を .Submit(確認) する objIE.Document.forms(0).getElementsByTagName("input")(11).Click '←★この部分で止まる時があります。 While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 6, Now()) Do While Now() < Wait_Time DoEvents Loop For Each link In objIE.Document.Links If link.href = "http://" Then link.Click End If Next While objIE.readystate <> 4 While objIE.busy = True DoEvents Wend Wend Wait_Time = DateAdd("s", 7, Now()) Do While Now() < Wait_Time DoEvents Loop objIE.Quit '.Quitで閉じる End Sub

  • vba ie操作 ログインしたい

    いつもお世話になっております。 前回ご回答いただいた方ありがとうございました。 またまた困ったことにログインしたいサイトがあるのですがうまくできません。 URLはhttps://www.a-q-f.com/openpc/USB0100S01Action.do?aqf_id=S0000&send_url=https://www.a-q-f.com/&get_userInfo=&r=2941249539317530063 なのですが、ログインが二つあり、左側でログインしたいのですが、ボタンを押下できません。 **************************************************** Sub 永久不滅ドットコム() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "https://www.a-q-f.com/openpc/USB0100S01Action.do?aqf_id=S0000&send_url=https://www.a-q-f.com/&get_userInfo=&r=2941249539317530063" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Document.all.ID.Value = "test" objIE.Document.all.idPassword.Value = "test" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop For i = 0 To objIE.Document.Links.Length - 1 If objIE.Document.Links(i).innerHTML Like "*alt=ログイン*" Then '何も起こらない objIE.Document.Links(i).Click Exit For End If Next i objIE.Document.Forms(0).Click '何も起こらない objIE.Document.Forms(0).Submit 'エラーになる Set objIE = Nothing End Sub **************************************************** をやってみましたが無理でした・・・ ご教授よろしくお願いします。

  • VBAでIEの操作→サブウインドウを操作するには

    以下の「oya.html」「ko.html」があります。 それを、VBAで「oya.html」を開き、「子ウインドウを開く」リンクをクリックさせて、開いた「ko.html」の「子ウィンドウを閉じる」リンクをクリックさせたいのだがどうすればよろしいでしょうか? ---------VBA ↓--------------------------------------------- Private Sub CommandButton1_Click() Dim objIE As Object 'Object型 'IEのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "file:///C:/oya.html"'「oya.html」を開く '----表示待ち↓-------- Do While objIE.Busy  DoEvents Loop Do While objIE.document.ReadyState <> "complete" DoEvents Loop '----表示待ち↑---------- For Each linkitem In objIE.document.all.tags("A") 'Aタグ If linkitem.innerText = "子ウインドウを開く" Then linkitem.Click End If Next '----表示待ち↓-------- Do While objIE.Busy DoEvents Loop Do While objIE.document.ReadyState <> "complete" DoEvents Loop '----表示待ち↑----------   For Each linkitem In objIE.document.all.tags("A") 'Aタグ If linkitem.innerText = "子ウィンドウを閉じる" Then linkitem.Click End If Next End Sub ---------------↑------------------------------------------- --------oya.html ↓----------------------------------------- <html> <head><script> function showModal(){ var value = showModalDialog('ko.html'); } </script></head> <TITLE>親ウィンドウ</TITLE> <body> <a href="javascript://" onclick="showModal()">子ウインドウを開く</a><br> </body> </html> -----------------↑----------------------------------------- --------ko.html ↓-------------------------------------------- <html> <TITLE>子ウィンドウ</TITLE> <body> <a href="#" onClick="window.close(); return false;">子ウィンドウを閉じる</a><br> </body> </html> ------------------↑-----------------------------------------

  • Or  And  確実に表示させるにはどちらを?

    http://okwave.jp/qa/q5586837.html を見て思ったのですが、 ブラウザを表示させるまで待つ場合、 Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Loop と Do While objIE.Busy = True And objIE.readyState <> 4 DoEvents Loop ではどちらを使ったほうがいいのでしょうか? どちらもサイトを表示できてますが、確実に表示されるのはどちらなのか教えてください。

  • vba ie操作 ボタンを押したい(2)

    https://ca.omc-card.co.jp/member/omcplus_login.html のサイトにログインしたいのですが、ログインボタンが押せません。 ソースは、 ********************************************************************************** <FORM action="../member/xt_mem_top_login.asp" method="post" name="form1"><input type="hidden" name="sid" value=""><input type="hidden" name="pw" value="">     ~~~省略~~~ <TABLE border="0" cellspacing="0" cellpadding="5" class="tab_button_bottom15"> <TR> <TD><A href="javascript:checkInput(document.form1);"><IMG src="../img/button/login.gif" alt="ログイン" width="160" height="35" border="0"></A></TD> </TR> </TABLE> </FORM> ********************************************************************************** です。 --------------------------------------------------------------------------------- Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://ca.omc-card.co.jp/member/omcplus_login.html" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop objIE.Document.forms(0).Item("sid_input").Value = "×××" objIE.Document.forms(0).Item("pw_input").Value = "×××" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop 'objIE.Document.forms(1).submit 'エラーになる objIE.Document.all.Item("document.form1").Click 'エラーになる objIE.Document.forms(0).getElementsByTagName("input")(0).Click 'エラーにならないけどクリックもされない。 objIE.Document.forms(0).getElementsByTagName("input")(1).Click 'エラーにならないけどクリックもされない。 objIE.Document.forms(0).getElementsByTagName("document.form1")(1).Click 'エラーになる objIE.Document.forms(1).getElementsByTagName("input")(1).Click 'エラーになる Set objIE = Nothing End Sub --------------------------------------------------------------------------------- テキストにIDとPWを入れるところまでは出来たのですが、 ログインボタンを押すことができません。 すいませんがご教授ご回答よろしくお願いしますm( )m

  • VBA IE操作 ログイン後URLを取得したい

    yahooにログインするVBAコードはわかるのですが、 ログインが失敗なのか正常にログインできたのかをVBAで知りたいです。 結果を知るには、ログインボタン押下後のURLを取得できればいいと思うのですが その方法がわかりません。 ログイン自体は、 --------------------------------------------------------- Sub ie_test() Dim objIE As Object 'IEオブジェクト参照用 'インターネットエクスプローラーのオブジェクトを作る Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True '見えるようにする(お約束) '文字列で指定したURLに飛ぶ objIE.Navigate "https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp" '表示終了まで待つ Do While objIE.Busy = True '何もしないループ(笑) DoEvents Loop '項目名を指定して、データをセットする objIE.document.all.UserName.Value = "UserName" objIE.document.all.passwd.Value = "****" objIE.document.Forms(0).submit End Sub --------------------------------------------------------- で、できました。 objIE.document.Forms(0).submitの後には、 ログインが出来ていたら http://www.yahoo.co.jp/ のページへ行き、 ログイン失敗なら https://login.yahoo.co.jp/config/login? のURLが表示され、図のように 「Yahoo! JAPAN IDまたはパスワードが正しくありません。」 と表示されます。 objIE.document.Forms(0).submitの後に MsgBox objIE.URL を入れると 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)」 になり、 MsgBox objIE.Navigate を入れると 「引数の数が一致していません。または不正なプロパティを指定しています。(Error 450)」 になります。 ログイン後のソースをエクセルに書き出す方法も考えましたが、書き出しに時間がかかるのでやめました。 ご教授よろしくお願いします。

専門家に質問してみよう