Excel vba
移動飛信
Function GetWtitle(ByVal url As String) As String
On Error Resume Next
Dim html As String
With CreateObject("Msxml2.XMLHTTP")
.Open "get", url, False
.send
html = .responsetext
If InStr(html, "charset=gbk") > 0 Then html = StrConv(.responsebody, vbUnicode, &H804)
GetWtitle = Split(Split(html, "", , vbTextCompare)(1), " ", , vbTextCompare)(0)
End With
End Function
On Error Resume Next
Dim html As String
With CreateObject("Msxml2.XMLHTTP")
.Open "get", url, False
.send
html = .responsetext
If InStr(html, "charset=gbk") > 0 Then html = StrConv(.responsebody, vbUnicode, &H804)
GetWtitle = Split(Split(html, "
End With
End Function
Option Explicit
'//****************************************************************************************************************************************
'//此模組演示了一個沒有邊框和標題欄的窗體
'//****************************************************************************************************************************************
'//以下宣告API函式
'//查詢視窗
Private Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As Long
'//取得視窗樣式位
Private Declare Function GetWindowLong _
Lib "user32" _
Alias "GetWindowLongA" ( _
ByVal Hwnd As Long, _
ByVal nIndex As Long) _
As Long
'//設定視窗樣式位
Private Declare Function SetWindowLong _
Lib "user32" _
Alias "SetWindowLongA" ( _
ByVal Hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) _
As Long
'//重繪窗體標題欄
Private Declare Function DrawMenuBar _
Lib "user32" ( _
ByVal Hwnd As Long) _
As Long
'//以下定義常數及變數
Private Const GWL_STYLE. = (-16) '視窗樣式
Private Const WS_CAPTION = &HC00000 '視窗標題欄
Private Const GWL_EXSTYLE. = (-20) '窗體擴充樣式
Private Const WS_EX_DLGMODALFRAME. = &H1& '窗體邊框
Private Hwnd As Long '用於寄存窗體控制程式碼
'//****************************************************************************************************************************************
'// 程式
'//此模組演示了一個沒有邊框和標題欄的窗體
'//****************************************************************************************************************************************
'//以下宣告API函式
'//查詢視窗
Private Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As Long
'//取得視窗樣式位
Private Declare Function GetWindowLong _
Lib "user32" _
Alias "GetWindowLongA" ( _
ByVal Hwnd As Long, _
ByVal nIndex As Long) _
As Long
'//設定視窗樣式位
Private Declare Function SetWindowLong _
Lib "user32" _
Alias "SetWindowLongA" ( _
ByVal Hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) _
As Long
'//重繪窗體標題欄
Private Declare Function DrawMenuBar _
Lib "user32" ( _
ByVal Hwnd As Long) _
As Long
'//以下定義常數及變數
Private Const GWL_STYLE. = (-16) '視窗樣式
Private Const WS_CAPTION = &HC00000 '視窗標題欄
Private Const GWL_EXSTYLE. = (-20) '窗體擴充樣式
Private Const WS_EX_DLGMODALFRAME. = &H1& '窗體邊框
Private Hwnd As Long '用於寄存窗體控制程式碼
'//****************************************************************************************************************************************
'// 程式
Private MovX As Long, MovY As Long
Private Sub UserForm_Initialize()
Dim Istype As Long
'//查詢本視窗控制程式碼
Hwnd = FindWindow("ThunderDFrame", Me.Caption)
'//取得視窗樣式位
Istype = GetWindowLong(Hwnd, GWL_STYLE)
'//窗體樣式位: 原樣式無標題
Istype = Istype And Not WS_CAPTION
'//重設窗體樣式位
SetWindowLong Hwnd, GWL_STYLE, Istype
'//取得擴充視窗樣式位
Istype = GetWindowLong(Hwnd, GWL_EXSTYLE)
'//擴充窗體樣式位: 原樣式無邊框
Istype = Istype And Not WS_EX_DLGMODALFRAME
'//重設擴充窗體樣式位
SetWindowLong Hwnd, GWL_EXSTYLE, Istype
'//重繪窗體標題欄
DrawMenuBar Hwnd
End Sub
Dim Istype As Long
'//查詢本視窗控制程式碼
Hwnd = FindWindow("ThunderDFrame", Me.Caption)
'//取得視窗樣式位
Istype = GetWindowLong(Hwnd, GWL_STYLE)
'//窗體樣式位: 原樣式無標題
Istype = Istype And Not WS_CAPTION
'//重設窗體樣式位
SetWindowLong Hwnd, GWL_STYLE, Istype
'//取得擴充視窗樣式位
Istype = GetWindowLong(Hwnd, GWL_EXSTYLE)
'//擴充窗體樣式位: 原樣式無邊框
Istype = Istype And Not WS_EX_DLGMODALFRAME
'//重設擴充窗體樣式位
SetWindowLong Hwnd, GWL_EXSTYLE, Istype
'//重繪窗體標題欄
DrawMenuBar Hwnd
End Sub
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
MovX = X
MovY = Y
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 Then
Me.Move Me.Left + (X - MovX), Me.Top + (Y - MovY)
End If
End Sub
If Button = 1 Then
Me.Move Me.Left + (X - MovX), Me.Top + (Y - MovY)
End If
End Sub
''''''''''''''''''''''''''''''''''''''
1、無論做什麼,記得是為自己而做,那就毫無怨言。2、面對困境,也不要悲觀厭世。3、人生沒有絕對的公平,但是相對公平的。在一個天平秤上,你得到的越多,也必須比別人承受得更多。4、在人生的任何時候都不怕重頭再來,每一個看似低的起點,都是通往更高峰的必經之路。
提交表單form1:
Private Sub Command1_Click()
WebBrowser1.Document.Forms("form1").submit
End Sub
將form1中的名為u的屬性設為不可用:
Private Sub Command2_Click()
WebBrowser1.Document.Forms("form1").u.setAttribute "disabled", "disabled"
End Sub
Private Sub Command2_Click()
WebBrowser1.Document.Forms("form1").u.setAttribute "disabled", "disabled"
End Sub
將form1中的名為u的Text框中的內容設為abc:
Private Sub Command2_Click()
WebBrowser1.Document.Forms("form1").u.setAttribute "value", "abc"
End Sub
Private Sub Command2_Click()
WebBrowser1.Document.Forms("form1").u.setAttribute "value", "abc"
End Sub
遍歷所有標籤:
For i = 0 To WebBrowser1.Document.All.length - 1
If UCase(WebBrowser1.Document.All(i).tagName) = UCase("div") Then
End If
Next i
For i = 0 To WebBrowser1.Document.All.length - 1
If UCase(WebBrowser1.Document.All(i).tagName) = UCase("div") Then
End If
Next i
1、獲得瀏覽器資訊:
Private Sub Command1_Click()
WebBrowser1.Navigate ""
End Sub
Private Sub Command2_Click()
Dim oWindow
Dim oNav
Set Window = WebBrowser1.Document.parentWindow
Set Nav = oWindow.navigator
Debug.Print oNav.userAgent
Set Window = Nothing
Set Nav = Nothing
End Sub
點選Command1瀏覽網頁,點選Command2在立即視窗中輸出瀏覽器資訊。
Private Sub Command1_Click()
WebBrowser1.Navigate ""
End Sub
Private Sub Command2_Click()
Dim oWindow
Dim oNav
Set Window = WebBrowser1.Document.parentWindow
Set Nav = oWindow.navigator
Debug.Print oNav.userAgent
Set Window = Nothing
Set Nav = Nothing
End Sub
點選Command1瀏覽網頁,點選Command2在立即視窗中輸出瀏覽器資訊。
2、彈出Webbrowser訊息視窗
Dim oWindow
Set Window = WebBrowser1.Document.parentWindow
oWindow.confirm "abcd"
Set Window = WebBrowser1.Document.parentWindow
oWindow.confirm "abcd"
VB呼叫webbrowser技巧集2
向Webbrowser中寫入HTML內容的幾種方法
首先在Form_Load中加入
WebBrowser1.Navigate "about:blank"
確保Webbrowser1可用
方法1:
Dim s As String
Dim stream As IStream
Dim stream As IStream
s = ""
s = s + ""
s = s + ""
s = s + "
s = s + ""
s = s + ""
s = s + "
hello world
"
s = s + ""
s = s + "
WebBrowser1.Document.Write s
s = s + ""
s = s + "
WebBrowser1.Document.Write s
方法2:
Dim o
Set o = WebBrowser1.Document.selection.createrange
Debug.Print o
If (Not o Is Nothing) Then
o.pasteHTML "哈哈"
Set o = Nothing
End If
Debug.Print o
If (Not o Is Nothing) Then
o.pasteHTML "哈哈"
Set o = Nothing
End If
方法3:
'插入文字框
Dim o
Dim o
Set o = WebBrowser1.Document.selection.createrange
o.execCommand "InsertTextArea", False, "xxx"
vb呼叫Webbrowser技巧集3
1、頁面滾動:
1、頁面滾動:
Private Sub Command2_Click()
WebBrowser1.Document.parentwindow.scrollby 0, 30
End Sub
WebBrowser1.Document.parentwindow.scrollby 0, 30
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate ""
End Sub
WebBrowser1.Navigate ""
End Sub
點選Command2就可以使當前頁面向下滾動30畫素
2、判斷頁面是否可以前進後退
Private Sub Command1_Click()
WebBrowser1.GoForward
End Sub
WebBrowser1.GoForward
End Sub
Private Sub Command2_Click()
WebBrowser1.GoBack
End Sub
WebBrowser1.GoBack
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate ""
End Sub
WebBrowser1.Navigate ""
End Sub
Private Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean)
If (Command = CSC_NAVIGATEBACK) Then
Command2.Enabled = Enable
End If
If (Command = CSC_NAVIGATEFORWARD) Then
Command1.Enabled = Enable
End If
End Sub
If (Command = CSC_NAVIGATEBACK) Then
Command2.Enabled = Enable
End If
If (Command = CSC_NAVIGATEFORWARD) Then
Command1.Enabled = Enable
End If
End Sub
VB呼叫webbrowser技巧集4
1、如何使網頁不出現捲軸:
Private Sub mnuScroll1_Click()
@#注意:必須在網頁完全顯示之後才可以執行
WebBrowser1.Document.body.Scroll = "no" @#不顯示捲軸的辦法
End Sub
Private Sub mnuScroll2_Click()
@#注意:必須在網頁完全顯示之後才可以執行
WebBrowser1.Document.body.Scroll = "Auto" @#顯示捲軸的辦法
End Sub
@#注意:必須在網頁完全顯示之後才可以執行
WebBrowser1.Document.body.Scroll = "no" @#不顯示捲軸的辦法
End Sub
Private Sub mnuScroll2_Click()
@#注意:必須在網頁完全顯示之後才可以執行
WebBrowser1.Document.body.Scroll = "Auto" @#顯示捲軸的辦法
End Sub
2、如何獲得網頁中被選中部分的HTML:
Private Sub Command1_Click()
Dim objSelection
Dim objTxtRange
Dim objSelection
Dim objTxtRange
Set bjSelection = WebBrowser1.Document.selection
If Not (objSelection Is Nothing) Then
Set bjTxtRange = objSelection.createRange
If Not (objTxtRange Is Nothing) Then
Debug.Print objTxtRange.htmlText
If Not (objSelection Is Nothing) Then
Set bjTxtRange = objSelection.createRange
If Not (objTxtRange Is Nothing) Then
Debug.Print objTxtRange.htmlText
Set bjTxtRange = Nothing
End If
Set bjSelection = Nothing
End If
End Sub
End If
Set bjSelection = Nothing
End If
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate ""
End Sub
WebBrowser1.Navigate ""
End Sub
Navigate 方 法 的 語 法 格 式 為:
WebBrowser 控 件 名.Navigate URL
[Flags,][TargetFrameName,][PostData,][Headers]
[Flags,][TargetFrameName,][PostData,][Headers]
---- WebBrowser 控 件 支 持 的 主 要 方 法 有:
GoBack — — — 回 退 到 上 一 屏。
GoForward — — — 進 入 到 下 一 屏。
GoHome — — — 回 家。 即 回 到 主 頁。
Stop — — — 停 止 導 航。
Refresh — — — 刷 新。
Navigate — — — 導 航。
GoForward — — — 進 入 到 下 一 屏。
GoHome — — — 回 家。 即 回 到 主 頁。
Stop — — — 停 止 導 航。
Refresh — — — 刷 新。
Navigate — — — 導 航。
---- WebBrowser 控 件 所 響 應 的 事 件:
---- BeforeNavigate 事 件 — — — 在 開 始 導 航 前 發 生。 一 般 在 此 獲 取 完 整 的URL 字 符 串。
---- WebBrowser 控 件 最 主 要 的 參 數:
---- URL — — — 獲 得 導 航 用 的 標 淮URL 字 符 串。 例 如: 它 能 將”” 自 動 翻 譯 為”http://”.URL 是Uniform. Resource Locator 的 縮 寫, 是 在Internet 的WWW 服 務 程 序 上 用 於 指 定 信 息 位 置 的 表 示 方 法。
使用WebBrowser的Navigator或者Navigator2方法開啟一個asp文件並且傳遞
引數進去,但是asp文件無法獲得引數,請教是什麼原因?
vb原始碼:
Private Sub cmdSubmit_Click()
Dim strURL As String, strFormData As String
Dim strData As String
strURL = Trim$(txtURL.Text)
strFormData = "name=" & Trim$(txtName.Text) &
Private Sub cmdSubmit_Click()
Dim strURL As String, strFormData As String
Dim strData As String
strURL = Trim$(txtURL.Text)
strFormData = "name=" & Trim$(txtName.Text) &
"&password=" & Trim$(txtPassword.Text)
Call WBTest.Navigate2(strURL, 64, "_blank", strFormData,
Call WBTest.Navigate2(strURL, 64, "_blank", strFormData,
"hello")
End Sub
End Sub
asp原始碼:
dim strName
dim strPassword
strName=Trim(Request.Form("name"))
strPassword=Trim(Request.Form("password"))
Response.Write(strName)
Response.Write(strPassword)
if strName="KingZhang" and strPassword="123456" then
Response.Write("登陸成功")
else
Response.Write("非法登陸使用者!")
end if
%>
*********************************************************************
Option Explicit
Private Sub Command1_Click()
Dim szValue As String
WebBrowser1.Document.body.innerHTML = "
Dim szValue As String
WebBrowser1.Document.body.innerHTML = "
method=post action=http://地址/xxx.php>
"
WebBrowser1.Document.Forms("post").submit
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate2 "about:blank"
End Sub
Top
WebBrowser1.Navigate2 "about:blank"
End Sub
Top
********************************************************************
請問:在WebBrwoser控制元件裡提供的Navigate或者Navigate2方法中提供了傳遞資料
的引數,呼叫方式為:WebBrowser1.Navigate2(URL,[Flags],
[TargetFrameName],[PostData],[Headers])
其中PostData引數就是一個提交引數字串,例如"name=aaa&password=123",
其中PostData引數就是一個提交引數字串,例如"name=aaa&password=123",
但問題是為什麼這個方法並不是有效的,伺服器端不能取得資料?
如果這個方法是有效的話就不需要用一段html程式碼模擬這種呼叫了。
如果這個方法是有效的話就不需要用一段html程式碼模擬這種呼叫了。
下面程式碼能檢測出程式post出去的訊息
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)
MsgBox PostData
End Sub
MsgBox PostData
End Sub
WebBrowser的8個方法和13個屬性
WebBrowser的8個方法和13個屬性,以及它們的功能:
方法 說明
GoBack 相當於IE的“後退”按鈕,使你在當前歷史列表中後退一項
GoBack 相當於IE的“後退”按鈕,使你在當前歷史列表中後退一項
GoForward 相當於IE的“前進”按鈕,使你在當前歷史列表中前進一項
GoHome 相當於IE的“主頁”按鈕,連線使用者預設的主頁
GoSearch 相當於IE的“搜尋”按鈕,連線使用者預設的搜尋頁面
Navigate 連線到指定的URL
Refresh 重新整理當前頁面
Refresh2 同上,只是可以指定重新整理級別,所指定的重新整理級別的值來自RefreshConstants列舉表,
該表定義在ExDisp.h中,可以指定的不同值如下:
REFRESH_NORMAL 執行簡單的重新整理,不將HTTP pragma: no-cache頭髮送給伺服器
REFRESH_IFEXPIRED 只有在網頁過期後才進行簡單的重新整理
REFRESH_CONTINUE 僅作內部使用。在MSDN裡寫著DO NOT USE! 請勿使用
REFRESH_COMPLETELY 將包含pragma: no-cache頭的請求傳送到伺服器
GoHome 相當於IE的“主頁”按鈕,連線使用者預設的主頁
GoSearch 相當於IE的“搜尋”按鈕,連線使用者預設的搜尋頁面
Navigate 連線到指定的URL
Refresh 重新整理當前頁面
Refresh2 同上,只是可以指定重新整理級別,所指定的重新整理級別的值來自RefreshConstants列舉表,
該表定義在ExDisp.h中,可以指定的不同值如下:
REFRESH_NORMAL 執行簡單的重新整理,不將HTTP pragma: no-cache頭髮送給伺服器
REFRESH_IFEXPIRED 只有在網頁過期後才進行簡單的重新整理
REFRESH_CONTINUE 僅作內部使用。在MSDN裡寫著DO NOT USE! 請勿使用
REFRESH_COMPLETELY 將包含pragma: no-cache頭的請求傳送到伺服器
Stop 相當於IE的“停止”按鈕,停止當前頁面及其內容的載入
屬性 說明
Application 如果該物件有效,則返回掌管WebBrowser控制元件的應用程式實現的自動化物件(IDispatch)。如果在宿主物件中自動化物件無效,這個程式將返回WebBrowser
控制元件的自動化物件
Parent 返回WebBrowser控制元件的父自動化物件,通常是一個容器,例如是宿主或IE視窗
Container 返回WebBrowser控制元件容器的自動化物件。通常該值與Parent屬性返回的值相同
Document 為活動的文件返回自動化物件。如果HTML當前正被顯示在WebBrowser中,則
Document屬性提供對DHTML Object Model的訪問途徑
TopLevelContainer 返回一個Boolean值,表明IE是否是WebBrowser控制元件頂層容器,是就返回true
屬性 說明
Application 如果該物件有效,則返回掌管WebBrowser控制元件的應用程式實現的自動化物件(IDispatch)。如果在宿主物件中自動化物件無效,這個程式將返回WebBrowser
控制元件的自動化物件
Parent 返回WebBrowser控制元件的父自動化物件,通常是一個容器,例如是宿主或IE視窗
Container 返回WebBrowser控制元件容器的自動化物件。通常該值與Parent屬性返回的值相同
Document 為活動的文件返回自動化物件。如果HTML當前正被顯示在WebBrowser中,則
Document屬性提供對DHTML Object Model的訪問途徑
TopLevelContainer 返回一個Boolean值,表明IE是否是WebBrowser控制元件頂層容器,是就返回true
Type 返回已被WebBrowser控制元件載入的物件的型別。例如:如果載入.doc檔案,就會返
回Microsoft Word Document
Left 返回或設定WebBrowser控制元件視窗的內部左邊與容器視窗左邊的距離
Top 返回或設定WebBrowser控制元件視窗的內部左邊與容器視窗頂邊的距離
Width 返回或設定WebBrowser視窗的寬度,以畫素為單位
Height 返回或設定WebBrowser視窗的高度,以畫素為單位
LocationName 返回一個字串,該字串包含著WebBrowser當前顯示的資源的名稱,如果資源
是網頁就是網頁的標題;如果是檔案或資料夾,就是檔案或資料夾的名稱
LocationURL 返回WebBrowser當前正在顯示的資源的URL
Busy 返回一個Boolean值,說明WebBrowser當前是否正在載入URL,如果返回true
就可以使用stop方法來撤銷正在執行的訪問操作
回Microsoft Word Document
Left 返回或設定WebBrowser控制元件視窗的內部左邊與容器視窗左邊的距離
Top 返回或設定WebBrowser控制元件視窗的內部左邊與容器視窗頂邊的距離
Width 返回或設定WebBrowser視窗的寬度,以畫素為單位
Height 返回或設定WebBrowser視窗的高度,以畫素為單位
LocationName 返回一個字串,該字串包含著WebBrowser當前顯示的資源的名稱,如果資源
是網頁就是網頁的標題;如果是檔案或資料夾,就是檔案或資料夾的名稱
LocationURL 返回WebBrowser當前正在顯示的資源的URL
Busy 返回一個Boolean值,說明WebBrowser當前是否正在載入URL,如果返回true
就可以使用stop方法來撤銷正在執行的訪問操作
如何利用 WebBrowser 控制元件,顯示 .GIF 動畫?
要有一定的網頁知識(HTML、JavaScript、CSS)
注意細節:
沒有"捲軸"和"滑鼠右鍵彈出的 IE 上下文選單",".HTM 原始檔" ...
我寫了一個,效果還真不錯!
注意細節:
沒有"捲軸"和"滑鼠右鍵彈出的 IE 上下文選單",".HTM 原始檔" ...
我寫了一個,效果還真不錯!
'Objects: Form1、Command1、CommonDialog1、WebBrowser1
Option Explicit
Private Sub Command1_Click()
CommonDialog1.ShowOpen
If VBA.Len(VBA.Trim(CommonDialog1.FileName)) > 0 Then
Dim p As stdole.StdPicture
Dim sPath As String
sPath = VBA.Trim(VBA.Trim(CommonDialog1.FileName))
Set p = VB.LoadPicture(sPath)
WebBrowser1.Width = p.Width * 16 / 26
WebBrowser1.Height = p.Height * 16 / 26
' WebBrowser1.Navigate "about:blank"
WebBrowser1.Document.open
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln "WebBrowser1.Document.writeln "
WebBrowser1.Document.writeln "WebBrowser1.Document.writeln "
"
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
End If
End Sub
Private Sub Form_Load()
Command1.Caption = "&Open"
WebBrowser1.Navigate "about:blank"
WebBrowser1.Document.open
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln "WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.Close
End Sub
Option Explicit
Private Sub Command1_Click()
CommonDialog1.ShowOpen
If VBA.Len(VBA.Trim(CommonDialog1.FileName)) > 0 Then
Dim p As stdole.StdPicture
Dim sPath As String
sPath = VBA.Trim(VBA.Trim(CommonDialog1.FileName))
Set p = VB.LoadPicture(sPath)
WebBrowser1.Width = p.Width * 16 / 26
WebBrowser1.Height = p.Height * 16 / 26
' WebBrowser1.Navigate "about:blank"
WebBrowser1.Document.open
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln "WebBrowser1.Document.writeln "
WebBrowser1.Document.writeln "WebBrowser1.Document.writeln "
"
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
End If
End Sub
Private Sub Form_Load()
Command1.Caption = "&Open"
WebBrowser1.Navigate "about:blank"
WebBrowser1.Document.open
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln "WebBrowser1.Document.writeln ""
WebBrowser1.Document.writeln ""
WebBrowser1.Document.Close
End Sub
WebBrowser控制元件說明
方法 說明
GoBack 相當於IE的“後退”按鈕,使你在當前歷史列表中後退一項
方法 說明
GoBack 相當於IE的“後退”按鈕,使你在當前歷史列表中後退一項
GoForward 相當於IE的“前進”按鈕,使你在當前歷史列表中前進一項
GoHome 相當於IE的“主頁”按鈕,連線使用者預設的主頁
GoSearch 相當於IE的“搜尋”按鈕,連線使用者預設的搜尋頁面
Navigate 連線到指定的URL
Refresh 重新整理當前頁面
Refresh2 同上,只是可以指定重新整理級別,所指定的重新整理級別的值來自RefreshConstants列舉表,
該表定義在ExDisp.h中,可以指定的不同值如下:
REFRESH_NORMAL 執行簡單的重新整理,不將HTTP pragma: no-cache頭髮送給伺服器
REFRESH_IFEXPIRED 只有在網頁過期後才進行簡單的重新整理
REFRESH_CONTINUE 僅作內部使用。在MSDN裡寫著DO NOT USE! 請勿使用
REFRESH_COMPLETELY 將包含pragma: no-cache頭的請求傳送到伺服器
GoHome 相當於IE的“主頁”按鈕,連線使用者預設的主頁
GoSearch 相當於IE的“搜尋”按鈕,連線使用者預設的搜尋頁面
Navigate 連線到指定的URL
Refresh 重新整理當前頁面
Refresh2 同上,只是可以指定重新整理級別,所指定的重新整理級別的值來自RefreshConstants列舉表,
該表定義在ExDisp.h中,可以指定的不同值如下:
REFRESH_NORMAL 執行簡單的重新整理,不將HTTP pragma: no-cache頭髮送給伺服器
REFRESH_IFEXPIRED 只有在網頁過期後才進行簡單的重新整理
REFRESH_CONTINUE 僅作內部使用。在MSDN裡寫著DO NOT USE! 請勿使用
REFRESH_COMPLETELY 將包含pragma: no-cache頭的請求傳送到伺服器
Stop 相當於IE的“停止”按鈕,停止當前頁面及其內容的載入
屬性 說明
Application 如果該物件有效,則返回掌管WebBrowser控制元件的應用程式實現的自動化物件(IDispatch)。如果在宿主物件中自動化物件無效,這個程式將返回WebBrowser
控制元件的自動化物件
Parent 返回WebBrowser控制元件的父自動化物件,通常是一個容器,例如是宿主或IE視窗
Container 返回WebBrowser控制元件容器的自動化物件。通常該值與Parent屬性返回的值相同
Document 為活動的文件返回自動化物件。如果HTML當前正被顯示在WebBrowser中,則
Document屬性提供對DHTML Object Model的訪問途徑
TopLevelContainer 返回一個Boolean值,表明IE是否是WebBrowser控制元件頂層容器,是就返回true
Application 如果該物件有效,則返回掌管WebBrowser控制元件的應用程式實現的自動化物件(IDispatch)。如果在宿主物件中自動化物件無效,這個程式將返回WebBrowser
控制元件的自動化物件
Parent 返回WebBrowser控制元件的父自動化物件,通常是一個容器,例如是宿主或IE視窗
Container 返回WebBrowser控制元件容器的自動化物件。通常該值與Parent屬性返回的值相同
Document 為活動的文件返回自動化物件。如果HTML當前正被顯示在WebBrowser中,則
Document屬性提供對DHTML Object Model的訪問途徑
TopLevelContainer 返回一個Boolean值,表明IE是否是WebBrowser控制元件頂層容器,是就返回true
Type 返回已被WebBrowser控制元件載入的物件的型別。例如:如果載入.doc檔案,就會返
回Microsoft Word Document
Left 返回或設定WebBrowser控制元件視窗的內部左邊與容器視窗左邊的距離
Top 返回或設定WebBrowser控制元件視窗的內部左邊與容器視窗頂邊的距離
Width 返回或設定WebBrowser視窗的寬度,以畫素為單位
Height 返回或設定WebBrowser視窗的高度,以畫素為單位
LocationName 返回一個字串,該字串包含著WebBrowser當前顯示的資源的名稱,如果資源
是網頁就是網頁的標題;如果是檔案或資料夾,就是檔案或資料夾的名稱
LocationURL 返回WebBrowser當前正在顯示的資源的URL
Busy 返回一個Boolean值,說明WebBrowser當前是否正在載入URL,如果返回true
就可以使用stop方法來撤銷正在執行的訪問操作
回Microsoft Word Document
Left 返回或設定WebBrowser控制元件視窗的內部左邊與容器視窗左邊的距離
Top 返回或設定WebBrowser控制元件視窗的內部左邊與容器視窗頂邊的距離
Width 返回或設定WebBrowser視窗的寬度,以畫素為單位
Height 返回或設定WebBrowser視窗的高度,以畫素為單位
LocationName 返回一個字串,該字串包含著WebBrowser當前顯示的資源的名稱,如果資源
是網頁就是網頁的標題;如果是檔案或資料夾,就是檔案或資料夾的名稱
LocationURL 返回WebBrowser當前正在顯示的資源的URL
Busy 返回一個Boolean值,說明WebBrowser當前是否正在載入URL,如果返回true
就可以使用stop方法來撤銷正在執行的訪問操作
WebBrowser 的事件
Private Events Description
BeforeNavigate2 導航發生前激發,重新整理時不激發
CommandStateChange 當命令的啟用狀態改變時激發。它表明何時啟用或關閉Back和Forward
選單項或按鈕
DocumentComplete 當整個文件完成是激發,重新整理頁面不激發
DownloadBegin 當某項下載操作已經開始後激發,重新整理也可激發此事件
DownloadComplete 當某項下載操作已經完成後激發,重新整理也可激發此事件
NavigateComplete2 導航完成後激發,重新整理時不激發
NewWindow2 在建立新視窗以前激發
OnFullScreen 當FullScreen屬性改變時激發。該事件採用VARIENT_BOOL的一個輸
入引數來指示IE是全屏顯示方式(VARIENT_TRUE)還是普通顯示方式(VARIENT_FALSE)
OnMenuBar 改變MenuBar的屬性時激發,標示引數是VARIENT_BOOL型別的。
VARIANT_TRUE是可見,VARIANT_ FALSE是隱藏
OnQuit 無論是使用者關閉瀏覽器還是開發者呼叫Quit方法,當IE退出時就會激發
OnStatusBar 與OnMenuBar呼叫方法相同,標示狀態列是否可見。
OnToolBar 呼叫方法同上,標示工具欄是否可見。
OnVisible 控制視窗的可見或隱藏,也使用一個VARIENT_BOOL型別的引數
StatusTextChange 如果要改變狀態列中的文字,這個事件就會被激發,但它並不理會程式是否有狀態列
TitleChange Title有效或改變時激發
WEBBROWSER 技巧(收藏)
看到很多關於WebBrowser控制元件禁止右鍵的提問,回覆的方法很多,其中有提到使用微軟提供的Webbrowser擴充套件COM伺服器物件(WBCustomizer.dll),但是該方法在我們想使用Webbrowser編輯網頁(Webbrowser1.Document.execCommand editMode)的時候有很多弊端,比如不能顯示選中的文字等。另有些方法也就不用一一列舉了。
這兒我想提到的是關於MSHTML.HTMLDocument
引用Microsoft HTML OBject Library
Rem #窗體程式碼#
Dim WithEvents M_Dom As MSHTML.HTMLDocument
Private Function M_Dom_oncontextmenu() As Boolean
M_Dom_oncontextmenu = False
End Function
Private Function M_Dom_oncontextmenu() As Boolean
M_Dom_oncontextmenu = False
End Function
Private Sub Webbrowser1_DownloadComplete()
Set M_Dom = Webbrowser1.Document
End Sub
Set M_Dom = Webbrowser1.Document
End Sub
Rem 好了,右鍵選單沒有了
=======================================================================
控制元件呼叫和獲得收藏夾裡面
基本上用 specialfolder(6 ) 就可以得到收藏夾的路徑, 然後你可以用dir去迴圈讀入每個目錄,然後dir裡面的file, file的名字就是你要的收藏的名字, 路徑可以自己根據從上面得到的路徑去得到.
如果你不用dir也可以用vb的dir控制元件.
Private Type SHITEMID
cb As Long
abID As Byte
End Type
如果你不用dir也可以用vb的dir控制元件.
Private Type SHITEMID
cb As Long
abID As Byte
End Type
Public Type ITEMIDLIST
mkid As SHITEMID
End Type
Public Function SpecialFolder(ByRef CSIDL As Long) As String
locate the favorites folder
Dim R As Long
Dim sPath As String
Dim IDL As ITEMIDLIST
Const NOERROR = 0
Const MAX_LENGTH = 260
R = SHGetSpecialFolderLocation(MDIMain.hwnd, CSIDL, IDL)
If R = NOERROR Then
sPath = Space$(MAX_LENGTH)
R = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal sPath)
If R Then
SpecialFolder = Left$(sPath, InStr(sPath, vbNullChar) - 1)
End If
End If
End Function
================================================================
mkid As SHITEMID
End Type
Public Function SpecialFolder(ByRef CSIDL As Long) As String
locate the favorites folder
Dim R As Long
Dim sPath As String
Dim IDL As ITEMIDLIST
Const NOERROR = 0
Const MAX_LENGTH = 260
R = SHGetSpecialFolderLocation(MDIMain.hwnd, CSIDL, IDL)
If R = NOERROR Then
sPath = Space$(MAX_LENGTH)
R = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal sPath)
If R Then
SpecialFolder = Left$(sPath, InStr(sPath, vbNullChar) - 1)
End If
End If
End Function
================================================================
是的,webbrowser本生是一個控制元件, 你要它全屏,就是要它所在的窗體全屏, 可以用setwindowlong取消窗體的 title, 用Call ShowWindow(FindWindow(Shell_traywnd, ), 0) 隱藏tray,就是下邊那個包含開始那一行. 用Call ShowWindow(FindWindow(Shell_traywnd, ), 9) 恢復. 夠詳細了吧.
然後在form1.windowstate = 2 就可以了.
====================================================================
選擇網頁上的內容。
Private Sub Command1_Click()
請先選中一些內容
Me.WebBrowser1.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT
MsgBox Clipboard.GetText
End Sub
選擇網頁上的內容。
Private Sub Command1_Click()
請先選中一些內容
Me.WebBrowser1.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT
MsgBox Clipboard.GetText
End Sub
=============================================================
用IE來下載檔案
Private Declare Function DoFileDownload Lib shdocvw.dll (ByVal lpszFile As String) As Long
用IE來下載檔案
Private Declare Function DoFileDownload Lib shdocvw.dll (ByVal lpszFile As String) As Long
Private Sub Command1_Click()
Dim sDownload As String
sDownload = StrConv(Text1.Text, vbUnicode)
Call DoFileDownload(sDownload)
Call DoFileDownload(sDownload)
End Sub
儲存webbrowser中的HTML內容
Dim oPF As IPersistFile
Set PF = WebBrowser1.Document
oPF.Save "TheFileNameHere.htm", False
Dim oPF As IPersistFile
Set PF = WebBrowser1.Document
oPF.Save "TheFileNameHere.htm", False
WebBrowser1.ExecWB怎麼用
下面是我測試的引數
WB.ExecWB(4,1)
WB.ExecWB(4,1)
4,1 儲存網頁
4,2 儲存網頁(可以重新命名)
6,1 直接列印
6,2 直接列印
7,1 列印預覽
7,2 列印預覽
8,1 選擇引數
8,2 選擇引數
10,1 檢視頁面屬性
10,2 檢視頁面屬性
17,1 全選
17,2 全選
22,1 重新載入當前頁
22,2 重新載入當前頁
4,2 儲存網頁(可以重新命名)
6,1 直接列印
6,2 直接列印
7,1 列印預覽
7,2 列印預覽
8,1 選擇引數
8,2 選擇引數
10,1 檢視頁面屬性
10,2 檢視頁面屬性
17,1 全選
17,2 全選
22,1 重新載入當前頁
22,2 重新載入當前頁
webbrowser確定對話方塊的正確方法
webbrowser確定視窗對話方塊
webbrowser確定視窗對話方塊
某些網頁出於各種考慮會彈出對話方塊要求資訊確認,往往會中斷我們的webbrowser過程,可以使用如下方法:
1.加入Microsoft Html Object
2.加入語句
1.加入Microsoft Html Object
2.加入語句
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Dim obj As HTMLDocument
Set bj = pDisp.Document
obj.parentWindow.execScript. "function showModalDialog(){return;}" '對showModalDialog引起的對話方塊進行確定
End Sub
而confirm引發的對話確定框可用confirm替換showModalDialog即可,Alert等同理~
Dim obj As HTMLDocument
Set bj = pDisp.Document
obj.parentWindow.execScript. "function showModalDialog(){return;}" '對showModalDialog引起的對話方塊進行確定
End Sub
而confirm引發的對話確定框可用confirm替換showModalDialog即可,Alert等同理~
WebBrowser取得網頁原始碼Private Sub Command1_Click()
WebBrowser1.Navigate ""
End Sub
WebBrowser1.Navigate ""
End Sub
Private Sub WebBrowser1_DownloadComplete()
'頁面下載完畢
Dim doc, objhtml
Set doc = WebBrowser1.Document
'頁面下載完畢
Dim doc, objhtml
Set doc = WebBrowser1.Document
Set bjhtml = doc.body.createtextrange()
If Not IsNull(objhtml) Then
Text1.Text = objhtml.htmltext
End If
If Not IsNull(objhtml) Then
Text1.Text = objhtml.htmltext
End If
End Sub
我用WebBrowser取得網頁原始碼,直接執行正常,但在編譯後出錯
提示:實時錯誤“91” Object 變數或 with 塊變數沒有設定
可能是沒有下載完所致,
可能是沒有下載完所致,
Private Sub WebBrowser1_DownloadComplete()
if webbrowser.busy=false then
Dim doc, objhtml
Set doc = WebBrowser1.Document
if webbrowser.busy=false then
Dim doc, objhtml
Set doc = WebBrowser1.Document
Set bjhtml = doc.body.createtextrange()
If Not IsNull(objhtml) Then
Text1.Text = objhtml.htmltext
End If
end if
End Sub
If Not IsNull(objhtml) Then
Text1.Text = objhtml.htmltext
End If
end if
End Sub
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/jyh_jack/archive/2008/02/15/2096949.aspx
把WEBBROWSER1裝到PICTURE裡面
Set Me.WebBrowser1.Container = Me.Picture1
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Dim a
For Each a In WebBrowser1.Document.All
If a.tagname = "A" Then
If a.href = "" Then
a.Click
End If
End If
Next
End Sub
webbrowser1.Document.All( "aaa ").Options(1).Selected = True
call webbrowser1.Document.All( "aaa ").fireEvent( "onchange ")
webBrowser1.Document.GetElementsByTagName("select")[15].Children[1].SetAttribute("selected", "selected");
webBrowser1.Document.GetElementsByTagName("select")[15].RaiseEvent("onchange");
''''''VB中遮蔽webbrowser的彈出錯誤對話方塊!
''''''
Private Sub WebBrowser1_DownloadBegin()
WebBrowser1.Silent = True
End Sub
Private Sub WebBrowser1_DownloadComplete()
WebBrowser1.Silent = True
End Sub
WebBrowser1.Silent = True
End Sub
Private Sub Form_Load()
WebBrowser1.Silent = True '這樣就可以遮蔽了。。
End Sub
WebBrowser1.Silent = True '這樣就可以遮蔽了。。
End Sub
'而不是在設計中選中Webbrowser1控制元件把silent設為true,一定要程式碼寫在form_load中
webbrowser1.document.frames(0).document.body.innerHTML
MsgBox WebBrowser1.Document.frames("TicketForm").Document.getelementbyid("HasCheck").Value
document.getElementById('framename').document
Private Sub Command1_Click()
Dim a As String
Dim a As String
a = wb.Document.All("workFrame").contentwindow.Document.body.innerhtml
Debug.Print a
End Sub
Debug.Print a
End Sub
'--------------------------
Dim browser As InternetExplorer
Dim myFrame. As HTMLIFrame
Dim myFrame. As HTMLIFrame
'start the browser
Set browser = CreateObject("InternetExplorer.Application")
Set browser = CreateObject("InternetExplorer.Application")
'other code
'navigate the browser to the WebPage containing the IFrame
browser.navigate (newUrl)
browser.navigate (newUrl)
'other code
'the IFrame. "mainWindow" can be found, I get back a valid HTMLIFrame. Object, but this Object has no childNodes or children
Set myFrame. = getMainWindow()
Set myFrame. = getMainWindow()
'obtain the IFrame. called "mainWindow"
Private Function getMainWindow() As HTMLFrameBase
Dim frames As HTMLElementCollection
Dim frame. As HTMLIFrame
Set frames = getElementsByTagName("IFrame")
For Each frame. In frames
If frame.name = "mainWindow" Then
Set getMainWindow = frame
Exit For
End If
Next
End Function
Private Function getElementsByTagName(name As String) As HTMLElementCollection
Set getElementsByTagName = browser.document.getElementsByTagName(name)
End Function
Set getElementsByTagName = browser.document.getElementsByTagName(name)
End Function
'------------------
Set ieframesdoc = WebBrowser1.Document.frames(framename).Document
Debug.Print ieframesdoc.documentElement.innerHTML 來顯示原始碼
Set ieframesdoc = WebBrowser1.Document.frames(framename).Document
Debug.Print ieframesdoc.documentElement.innerHTML 來顯示原始碼
ieframesdoc.getElementsByName("username")(0).Value="aq82.com" 把username的內容設定為aq82.com
WebBrowser.Document.documentElement.innerhtml
讀取框架頁面
debug.print webbrowser1.document.frames(0).document.body.innerHTML
debug.print webbrowser1.document.frames(0).document.body.innerHTML
document.forms[0].content.value="";
wb.Document.frames.mainFrame1.Document.all.menubysh
all.tags('table')
var htmls = window.frames["baidu"].document.getElementsByTagName("HTML");
var html_element = htmls[0];
alert(html_element.outerHTML);
var html_element = htmls[0];
alert(html_element.outerHTML);
'在WebBrowser中顯示其它網站iFrame的內容
Private Sub Command1_Click()
Dim html As String
html = WebBrowser1.Document.frames(4).Document.body.innerHTML
html = "" & "" & html & "" & ""
Private Sub Command1_Click()
Dim html As String
html = WebBrowser1.Document.frames(4).Document.body.innerHTML
html = "" & "" & html & "" & ""
WebBrowser2.Navigate "about:blank"
WebBrowser2.Document.write html
End Sub
'
Private Sub Form_Load()
WebBrowser1.Navigate "", 0
End Sub
WebBrowser2.Document.write html
End Sub
'
Private Sub Form_Load()
WebBrowser1.Navigate "", 0
End Sub
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12964083/viewspace-691371/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- FIN2020 Excel and VBAExcel
- Python與Excel VBA比較PythonExcel
- 用 (Excel) VBA 讀取 OneNote!Excel
- Excel VBA小程式 -使 用VBA實現VLOOKUP函式查詢?Excel函式
- VBA中使用EXCEL工作表函式Excel函式
- Excel VBA 利用FileSystemObject處理檔案ExcelObject
- Excel VBA活動抽獎小程式Excel
- VBA遍歷 Excel 合併到一個 Excel 檔案Excel
- Excel vba自定義函式公式智慧提示Excel函式公式
- 簡單演示Excel中VBA程式碼的使用Excel
- Excel vba 例項(1) - 批量製作工資表頭Excel
- 在Excel VBA中使用SQL到底優勢在哪兒ExcelSQL
- 在Excel VBA中寫SQL,是一種什麼體驗ExcelSQL
- Excel表格中圖片怎麼固定在單元格里(VBA方法)Excel
- 征服Excel VBA:讓你工作效率倍增的239個實用技巧Excel
- 嫌Excel VBA執行速度慢,這些建議你一定要看Excel
- VBA 知識
- Excel VBA中寫SQL,這些問題你一定為此頭痛過ExcelSQL
- 記一次vba+word+excel+powerbi處理問卷調研結果的經歷Excel
- VBA命令按鈕操作
- VBA突擊01-012
- 關於《完全手冊Excel VBA典型例項大全——透過368個例子掌握》隨書樣例的下載Excel
- VBA 自定義常用函式 (備用)函式
- 記錄一個批次貼數的vba
- VBA - WPS 修改段落、表格、標題的宏
- VBA建立文字檔案、讀寫文字檔案
- 【VBA】シートをクリアする
- VBA和Python到底哪個比較難學Python
- 【VBA】Rangeの行、列、行數、列數を取得
- excel表格:Excel 2021 LTSC for MacExcelMac
- excelExcel
- 影片直播app原始碼,VBA 之Interior 物件設定底色APP原始碼物件
- wps office 2019 Pro Plus 整合序列號Vba安裝版
- VBA驅動SAP GUI完成介面元素值初始化GUI
- VBA,Shapes.AddCurve SafeArrayOfPoints:=pts 畫貝塞爾曲線
- Microsoft Excel 2019 for Mac(office excel 2019)ROSExcelMac
- Excel Sheet Column Number Excel表列序號Excel
- Excel Sheet Column Title Excel表列名稱Excel
- Excel教程——excel如何使用條件格式Excel