|
▼コロスケ さん、ひらさん、こんにちは。
コロスケさんのコードでOKだと思っていましたし、素晴らしかったので(私も使わせて頂きます)、おまかせだったんですが・・・。
こんなふうにしてみたらどうでしょうか。
まず、EPを起動したり、閉じたときの処理をするコード。
'===============================================================
Private WithEvents ep As InternetExplorer
Private docu_comp As Boolean
'===============================================================
Sub main()
Set ep = New InternetExplorer
With ep
.Visible = True
.Navigate "http://www.h2.dion.ne.jp/~mtmamiri/ginnryuu.htm"
End With
End Sub
'===============================================================
Private Sub ep_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
docu_comp = False
End Sub
'===============================================================
Private Sub ep_DocumentComplete(ByVal pDisp As Object, URL As Variant)
docu_comp = True
End Sub
'===============================================================
Private Sub ep_OnQuit()
Set ep = Nothing
docu_comp = False
End Sub
そして、対象サイトをコピー&貼付するコード
'===============================================================
Sub docu_copy_paste()
If docu_comp = True Then
With ep
.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT
.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT
End With
DoEvents
ActiveCell.Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, _
DisplayAsIcon:=False ', NoHTMLFormatting:=True
' Excel2000にはないオプションですよね
' 確認してコメント外して下さい
End If
End Sub
というようにして見ました。
実は、Webbrowserコントロールでも「全てを選択」---「コピー」
(上記のコードの
With ep
.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT
.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT
End With
の箇所)
が
Sendkeysメソッドを使用すると、可能な事がわかりまして、ちょっと作ってみましたが、
コピー&ペーストは出来ますが、何故かやっぱり動きが不安定でした(Excel終了後、異常終了してみたり・・・)。
これで確認してみて下さい。
|
|