ここから本文です

VBAでIE上の条件分岐について

com********さん

2011/8/1511:11:45

VBAでIE上の条件分岐について

IE上で掲示板などのフォームに自動書き込みするマクロを記述しています。

現在表示しているページに指定のフォームがある場合のみ書き込みを実施する、
という記述を行いたいのですが分かりません。

フォームがあるかどうかの判別はどのように記述するのでしょうか?

参考までに文字をフォームにセットする記述は以下になっています。
objIE.Document.all("thread_msg").Value = "入力コメント"

どなたか教えていただけると幸いです。
よろしくお願い致します。

閲覧数:
773
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

kam********さん

2011/8/1512:54:28

ちょうど同じようなものを作っていたのですが、以下は、参考になりますでしょうか?

Sub Sample()
Dim objIE As Object

Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True

objIE.Navigate "http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1168930661"

While objIE.ReadyState <> 4
While objIE.Busy = True
DoEvents
Wend
Wend

If ChkTag(objIE, "INPUT", "p") Then
objIE.Document.Forms(1).Item("p").Value = "入力コメント" '★
MsgBox "存在あり"
Else
MsgBox "存在なし"
End If
End Sub

Function ChkTag(objIE As Object, strTag As String, strName As String) As Boolean
Dim objTag As Object

ChkTag = False
For Each objTag In objIE.Document.body.getElementsByTagName(strTag)
If objTag.Name = strName Then
ChkTag = True
Exit For
End If
Next
End Function

また、
VBAでIE連携を考えておられるならば、ご存知かもしれませんが、以下のサイトも参考になるかと思います。
http://www.ken3.org/cgi-bin/group/vba_ie.asp

質問した人からのコメント

2011/8/17 12:18:10

お二方ともありがとうございます!
無事に条件分岐する事ができました!
迷いましたが先に回答をいただきましたkamicha1さんにBAを差し上げたいと思います。

本当にありがとうございました。

ベストアンサー以外の回答

1〜1件/1件中

exc********さん

2011/8/1515:16:01

こんにちは。

HTMLの参照設定済みならば、下記にていけると思います。

Dim frm As MSHTML.HTMLFormElement
Dim doc As MSHTML.HTMLDocument

Set doc = Me.WebBrowser1.Document

For Each frm In doc.getElementsByTagName("form")
Debug.Print frm.Name
Next frm

ページにフォームがあれば、1つずつ名前をチェックします。
※Webbrowser(この方法の方がやりやすいですが)はobjIEに直してください。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる