香港新浪網 MySinaBlog
« 上一篇 | 下一篇 »
Emily | 17th Dec 2005, 09:58 AM | Network / Media, API / Add-in | (2815 Reads)

Web Page Print Screen

這是一個 Print Screen 的例子, 但不是屏幕, 是 Web 的

Web Print Screen 

' Written by Joe  and orginally posted in MrExcel
' Module
Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As ByteByVal _
bScan As ByteByVal dwFlags As LongByVal dwExtraInfo As Long)
Private Const VK_KEYUP = &H2
Private Const VK_SNAPSHOT = &H2C
Private Const VK_MENU = &H12
Dim ws As Worksheet
 
Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" _
(ByVal hwnd As LongByVal nCmdShow As LongAs Long
 
Global Const SW_MAXIMIZE = 3
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2

 
Private Sub Print_Screen()
 
keybd_event VK_MENU, 0, 0, 0
DoEvents
 
keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents
 
keybd_event VK_SNAPSHOT, 0, VK_KEYUP, 0
DoEvents
 
keybd_event VK_MENU, 0, VK_KEYUP, 0
DoEvents
 
ws.Paste Destination:=ws.Range("A1")
DoEvents
End Sub

 
Sub pasteWebPCopy()
Dim IE As Object
 
Set ws = ActiveSheet
 
Const strURL As String = "http://cat14051.mysinablog.com/index.php"
 
Set IE = CreateObject("InternetExplorer.Application")
 
IE.Visible = True
IE.Navigate strURL
apiShowWindow IE.hwnd, SW_MAXIMIZE
 
Do While IE.ReadyState <> 4
DoEvents
Loop
 
Print_Screen
IE.Visible = False
End Sub
 

[10] Re:
west_wolf :
你的这个代码是浏览ie的,我使用的是firefox,如何改动阿

Sorry, 不懂


[引用] | 作者 Emily | 1st Oct 2007 11:37 AM | [舉報垃圾留言]

[9]

你的这个代码是浏览ie的,我使用的是firefox,如何改动阿


[引用] | 作者 west_wolf | 30th Sep 2007 16:31 PM | [舉報垃圾留言]

[8] 3q

谢谢你。

我接触VBA的时间很短,这次多亏了你的帮助,图片已经可以控制大小了。

PS:这里很不错。


[引用] | 作者 tsetang | 16th Jan 2006 16:37 PM | [舉報垃圾留言]

[7] Re: a q
tsetang : 再请教一下,这个例子中的截图在贴到工作表之前能否对它的大小进行调整,比如按照比例缩小或者放大,然后再贴到工作表上。PS:我用的工作表的大小有限制,并且除了截图外还有其它数据要送上去,所以有没有可能把截图变小然后再贴上去呢。
ws.Range("A1").Select
ws.Paste
    Selection.ShapeRange.LockAspectRatio = msoTrue
    Selection.ShapeRange.Height = 384#     'ActiveWindow.Height
    Selection.ShapeRange.Width = 480#      'ActiveWindow.Width


[引用] | 作者 Emily | 13th Jan 2006 18:50 PM | [舉報垃圾留言]

[6] a q

再请教一下,这个例子中的截图在贴到工作表之前能否对它的大小进行调整,比如按照比例缩小或者放大,然后再贴到工作表上。

PS:我用的工作表的大小有限制,并且除了截图外还有其它数据要送上去,所以有没有可能把截图变小然后再贴上去呢。


[引用] | 作者 tsetang | 12th Jan 2006 11:04 AM | [舉報垃圾留言]

[5] Re: Re: sample
Emily : tsetang : 如果说想将web的截图同时贴到两个工作表的指定区域内,能否通过修改上面的例子实现呢?  于 Sub Print_Screen ws.Paste Destination:=ws.Range("A1")下 加 ws.Paste Destination:=Sheets("Sheet2").Range("A1")
多谢指点.


[引用] | 作者 tsetang | 12th Jan 2006 09:06 AM | [舉報垃圾留言]

[4] Re: sample
tsetang : 如果说想将web的截图同时贴到两个工作表的指定区域内,能否通过修改上面的例子实现呢?

 于 Sub Print_Screen

ws.Paste Destination:=ws.Range("A1")
下 加

ws.Paste Destination:=Sheets("Sheet2").Range("A1")


[引用] | 作者 Emily | 10th Jan 2006 13:25 PM | [舉報垃圾留言]

[3] sample

如果说想将web的截图同时贴到两个工作表的指定区域内,能否通过修改上面的例子实现呢?


[引用] | 作者 tsetang | 10th Jan 2006 12:54 PM | [舉報垃圾留言]

[2]

我執行沒有問題

Office 2000
Office XP


[引用] | 作者 Emily | 17th Dec 2005 21:42 PM | [舉報垃圾留言]

[1] hi

Global Const SW_MAXIMIZE = 3
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
这句有错误


[引用] | 作者 anjing572 | 17th Dec 2005 20:51 PM | [舉報垃圾留言]