VB.NET(VB 2010 Express)でIE9をWebBrowserコントロールではなく直接制御するアプリを作成しています。 そこで、次のURLのVBAによるHTMLソースのフレーム処理を参考にさせて頂いています。 http://vbaie.blog111.fc2.com/blog-entry-20.html そこから引用しVB.NET用にリライトした下記関数内でエラーとなっています。 'フレームのDocumentを取得する関数 Public Function IEFrameDocument(objIE As Object, url As String) As HtmlDocument Dim objFrames As mshtml.FramesCollection Dim frameDoc As HtmlDocument Dim i As Integer objFrames = objIE.document.frames For i = 0 To objFrames.Length - 1 frameDoc = objFrames.item(i).document 'エラー発生の行 If InStr(frameDoc.Url.ToString, url) Then Exit For End If Next IEFrameDocument = frameDoc End Function コメントで表示しているエラー行のエラー内容は、次のとおりです。 <InvalidCastExceptionはハンドルされませんでした。> 型 'mshtml.HTMLDocumentClass' の COM オブジェクトをクラス型'System.Windows.Forms.HtmlDocument' にキャストできません。 COM コンポーネントを表す型のインターフェイスを COM コンポーネントを表さない型にキャストすることはできません。 ただし、基になる COM コンポーネントがインターフェイスの IID の QueryInterface 呼び出しをサポートする場合は、インターフェイスにキャストすることができます。 解決方法を教えて頂きたくよろしくお願い致します。
↧