Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5927 / 13645 ツリー ←次へ | 前へ→

【48144】vbaでwebページを印刷できるの? はる 07/4/5(木) 4:23 質問[未読]
【48147】Re:vbaでwebページを印刷できるの? ichinose 07/4/5(木) 8:16 発言[未読]
【48171】Re:vbaでwebページを印刷できるの? はる 07/4/6(金) 4:21 お礼[未読]
【48155】Re:vbaでwebページを印刷できるの? Kein 07/4/5(木) 14:09 回答[未読]
【48172】Re:vbaでwebページを印刷できるの? はる 07/4/6(金) 4:24 お礼[未読]

【48144】vbaでwebページを印刷できるの?
質問  はる  - 07/4/5(木) 4:23 -

引用なし
パスワード
   エクセルのハイパーリンクを使って
あるwebページを表示して
そのページプリントスクリーンして
エクセルに貼り付ける
webページを閉じる
といったことを連続的に行いたいのです。
複数のwebページをエクセルから
連続的に開くコードは出来ています。
WEBヴラウザはIE6.0です。

vbaを使ってIE6.0を操作する??
ことはできるのでしょうか?
出来ないのであれば何を使えばいいのか教えて下さい。
どうか御助けください。

【48147】Re:vbaでwebページを印刷できるの?
発言  ichinose  - 07/4/5(木) 8:16 -

引用なし
パスワード
   ▼はる さん:
おはようございます。
サンプルとして、

新規ブックの標準モジュールに
'============================================================
Option Explicit
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal _
  bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Declare Function GetVersionExA Lib "kernel32" _
   (lpVersionInformation As OSVERSIONINFO) As Integer
Public Type OSVERSIONINFO
  dwOSVersionInfoSize As Long
  dwMajorVersion As Long
  dwMinorVersion As Long
  dwBuildNumber As Long
  dwPlatformId As Long
  szCSDVersion As String * 128
End Type
Public Const KEYEVENTF_KEYUP = &H2
Public Const VK_SNAPSHOT = &H2C
Public Const VK_MENU = &H12
'==============================================================
Sub test()
  Dim blnAboveVer4 As Boolean
  Dim osinfo As OSVERSIONINFO
  Dim retvalue As Integer
  osinfo.dwOSVersionInfoSize = 148
  osinfo.szCSDVersion = Space$(128)
  retvalue = GetVersionExA(osinfo)
  If osinfo.dwMajorVersion > 4 Then blnAboveVer4 = True
  With CreateObject("InternetExplorer.Application")
    .Visible = True
    .Navigate "HTTP://www.vbalab.net/"
'         ↑このHTTPを半角の小文字に直してください
    Do While .busy = True
     DoEvents
     Loop
    If blnAboveVer4 Then
     keybd_event VK_SNAPSHOT, 1, 0, 0
    Else
     keybd_event VK_MENU, 0, 0, 0
     keybd_event VK_SNAPSHOT, 0, 0, 0
     keybd_event VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0
     keybd_event VK_MENU, 0, KEYEVENTF_KEYUP, 0
     End If
    DoEvents
    .Quit
    End With
  With ActiveSheet
    .Range("a1").Activate
    .Paste
    End With
End Sub

として、testを実行してみてください。
このHPをハードコピーします。

尚、ハードコピーに関しては、

www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=18531;id=excel

これを参考にしました。

【48155】Re:vbaでwebページを印刷できるの?
回答  Kein  - 07/4/5(木) 14:09 -

引用なし
パスワード
   質問のタイトルからは、PrintScreenを貼り付けるのではなく、
印刷が目的のように思えますが、それなら IE の印刷機能を使えば
ずっと軽い処理で出来ます。コードは概ね・・

Dim IE As Object
Dim Ary As Variant
Dim i As Integer

Ary = Array(URL1, URL2, URL3)
Set IE = CreateObject("InternetExplorer.Application")
For i = 0 To UBound(Ary)
  IE.Navigate Ary(i)
  Do While IE.Busy
  Loop
  Do Until IE.ReadyState = READYSTATE_COMPLETE
  Loop
  IE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER
Next i
IE.Quit: Set IE = Nothing

というようなものです。配列の要素(URL1, URL2, ・・)は、実際の
サイトのアドレスにして下さい。

【48171】Re:vbaでwebページを印刷できるの?
お礼  はる  - 07/4/6(金) 4:21 -

引用なし
パスワード
   大変有難うございました
即使えました。
ただコードの意味はほとんど
掴めません。
がんばって勉強します。
有難うございました

【48172】Re:vbaでwebページを印刷できるの?
お礼  はる  - 07/4/6(金) 4:24 -

引用なし
パスワード
   ExecWBについて知らなかったので
御恥ずかしいです。
ExecWBは使える!
有難うございました

5927 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free