つらつら Excel VBA

私の備忘録です。

ブラウザIEを開いてエクセルにコピペする処理

Private Declare Sub Sleep Lib "kernel32" (ByVal ms As Long) '処理待機Sleep用

'IE上で全て選択とコピーを行ない、Excelの新規シートに貼り付ける
Function getHTML(strSheetName As String, strUrl As String) As Boolean

getHTML = True

Dim objIE As Object 'IEオブジェクト参照用
Set objIE = CreateObject("InternetExplorer.Application") 'IEのオブジェクトを作る
objIE.Visible = True '可視化

'IE表示場所、画面サイズの設定
objIE.FullScreen = False '最大化する場合はTrue
objIE.Top = 200
objIE.Left = 100
objIE.Width = 800
objIE.Height = 600

'指定したページを表示
objIE.navigate strUrl

'待機処理
While objIE.readyState <> 4 Or objIE.Busy = True
DoEvents
Wend
DoEvents

'形式を選択して貼り付け テキスト貼り付けのテスト
objIE.ExecWB 17, 0 'OLECMDID_SELECTALL = 17 全てを選択
objIE.ExecWB 12, 0 'OLECMDID_COPY = 12 コピー

'新規シートの作成
Set sh = Worksheets.Add(After:=Worksheets(Worksheets.Count))
sh.Name = strSheetName

'sh.Activate
sh.Range("A1").Select
sh.Paste '貼り付け

objIE.Quit 'IEを閉じる
DoEvents

err_flg:
Set sh = Nothing
Set objIE = Nothing

Sleep 5000 '5秒待機
'Application.Wait Now() + TimeValue("00:00:05")'5秒待機

End Function

’エラー処理とか必要