ObjIE.Document.Focusが遅延バインディングになる為、下記のようにStrict Offの専用Libを作って運用していますが不便です。遅延バインディングにならないコーディングを教えてください。
Option Strict Off
Module libOff
Sub ObjIEDocumentFocus(ByVal ObjIE As SHDocVw.InternetExplorer)
ObjIE.Document.Focus()
End Sub
End Module
例外処理やCOMオブジェクトの参照カウントのチェックなどを抜きにすれば、
Dim ObjDocument As mshtml.HTMLDocument
ObjDocument = ObjIE.Document
ObjDocument.focus()
とでもすればいいのでは。
K.J.K.さん、有難うございます。ご指摘のように修正してうまくいきましたが、フレームの場合はどうしてもうまくいきません。下記のコードでエラーになります。(MSHTML.FramesCollectionに既定のプロパティがない旨のコンパイルエラー)。ついでで申し訳ありませんが教えてください。
Dim ObjDocument As MSHTML.HTMLDocument
ObjDocument = CType(ObjIE.Document, MSHTML.HTMLDocument)
ObjDocument.frames(0).Frames(0).Document.Links.Item(4).click()
応用を利かせてください。
framesやframeなどを受けるための変数も用意して、そこで
受ければいいのでは。
# ついでに言うと、最初に提示した条件とは異なってきていますよね。
K.J.K.さん、あなたのアドバイスで最後に残っていたフレーム関係のStrictOffのLibを一挙に解決しました。本当に有難うございます。今後ともご指導の程お願いいたします。
| ツイート |
|