こんばんは、お世話になっております。
先日教えて頂いたコードを下記の様にしてみたのですが、
→の行でエラーになってしまいます。
Sub Main()
'現在起動中の InternetExplorer を列挙する
Dim Shell As Object = CreateObject("Shell.Application")
Dim Windows As Object = CallByName(Shell, "Windows", CallType.Method)
For I As Integer = 0 To CInt(CallByName(Windows, "Count", CallType.Get)) - 1
Dim Exp As Object = CallByName(Windows, "Item", CallType.Get, I)
Dim Doc As Object = CallByName(Exp, "Document", CallType.Get)
'HTMLを表示している場合のみ処理する
If Doc.GetType().Name Like "HTMLDocument*" Then
'MSHTML経由でドキュメントの内容を取得
Dim Body As Object
Dim Data As Object
Try
Body = CallByName(Doc, "body", CallType.Get)
Data = CallByName(Body, "innerHTML", CallType.Get)
→ Console.WriteLine(InStr(Data, "天気"))
Finally
If Not IsNothing(Body) Then
Marshal.ReleaseComObject(Body)
End If
Body = Nothing
End Try
End If
Marshal.ReleaseComObject(Doc)
Marshal.ReleaseComObject(Exp)
Next
Marshal.ReleaseComObject(Windows)
Marshal.ReleaseComObject(Shell)
Object型にInstrは使えないということのようですが、
変換方法やObject内のデータを一行ずつ取り出す方法があったら
教えていただけないでしょうか。
よろしくお願い致します。
単にキャストすれば良いだけでは。
Console.WriteLine(InStr(CType(Data, String), "天気"))
ねろさん、ありがとうございます。
できました!
また先に進めます。(^-^)
ツイート | ![]() |