Object型の中身をString型の変数に入れる方法

解決


しげちお  2005-06-17 06:35:36  No: 122756

こんばんは、お世話になっております。

先日教えて頂いたコードを下記の様にしてみたのですが、
→の行でエラーになってしまいます。

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内のデータを一行ずつ取り出す方法があったら
教えていただけないでしょうか。
よろしくお願い致します。


ねろ  2005-06-17 07:16:32  No: 122757

単にキャストすれば良いだけでは。
Console.WriteLine(InStr(CType(Data, String), "天気"))


しげちお  2005-06-17 07:42:03  No: 122758

ねろさん、ありがとうございます。
できました!
また先に進めます。(^-^)


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加