excel VBAについての質問です。
未読分:3件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#3 2014年10月3日(金)01時10分 From: みな | 返事 削除 変更 |
ご提示いただいた内容で処理をしたらなぜかVBAエラーがでたのですが、私の初歩的ミスでした。。。 それを解消したらうまく自動ログインができましたので、よかったです。 ありがとうございました! |
Message#2 2014年9月26日(金)21時10分 From: 管理人 | 返事 削除 変更 |
データ取得について、情報がないため分かりませんが、VBAでの自動ログイン方法については、以下を参考にしてみてください。 一応ボタンはinputタグのsubmitを想定してクリック処理しています。 【自動ログイン】 Sub sample() Dim objIE As InternetExplorer Call ieView(objIE, "ログインするURL") Call formText(objIE, "address", "ログインアドレス") Call formText(objIE, "pasward", "ログインパスワード") Call tagClick(objIE, "input", "send") End Sub 【利用したサブルーチン】 Sub ieView(objIE As InternetExplorer, _ urlName As String, _ Optional viewFlg As Boolean = True, _ Optional ieTop As Integer = 0, _ Optional ieLeft As Integer = 0, _ Optional ieWidth As Integer = 1200, _ Optional ieHeight As Integer = 1000) Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = viewFlg objIE.top = ieTop objIE.Left = ieLeft objIE.Width = ieWidth objIE.Height = ieHeight objIE.navigate urlName Call ieCheck(objIE) End Sub Sub ieCheck(objIE As InternetExplorer) Dim timeout As Date timeout = Now + TimeSerial(0, 0, 10) Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Sleep 100 If Now > timeout Then objIE.Refresh timeout = Now + TimeSerial(0, 0, 10) End If Loop timeout = Now + TimeSerial(0, 0, 10) Do Until objIE.document.readyState = "complete" DoEvents Sleep 100 If Now > timeout Then objIE.Refresh timeout = Now + TimeSerial(0, 0, 10) End If Loop End Sub Sub formText(objIE As InternetExplorer, idName As String, tagValue As String) For Each objTag In objIE.document.getElementsByTagName("input") If objTag.Name = idName Then objTag.value = tagValue Exit For End If Next For Each objTag In objIE.document.getElementsByTagName("textarea") If objTag.Name = idName Then objTag.value = tagValue Exit For End If Next End Sub Sub tagClick(objIE As InternetExplorer, tag As String, tagStr As String) For Each objTag In objIE.document.getElementsByTagName(tag) If InStr(objTag.outerHTML, tagStr) > 0 Then objTag.Click Call ieCheck(objIE) Exit For End If Next End Sub |
Message#1 2014年9月26日(金)20時40分 From: みな | 返事 削除 変更 |
excel VBAについての質問です。 メインで使うブラウザはfirefoxであり、IEでも対応できます。 ログインが必要なサイト内について、 A列に同サイトの「URL」が並んでおり、それに対応するようにB列へ「検索する単語」とし、 C列に「URL」遷移ページに「検索する単語」が含まれているか「有」「無」を表示したいのですが、 毎度ログインを求められたり、検索されなかったりと思うように動作させられません。 なお、ログインページはnameにより入力箇所が「address」「pasward」、 ボタンが「send」とされております。 つきましては、サンプルをご教示いただけませんでしょうか。 不確定要素が多く回答が難しい場合には補足等させていただきますので、 何卒よろしくお願いいたします。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降