Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产一区二区不卡视频,免费费很色视频大片,中文字幕日韩一区二区三区不

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          實戰VBA技術也能實現網頁瀏覽器

          實戰VBA技術也能實現網頁瀏覽器

          家好,上期的視頻可能各位已經看了,感覺代碼截圖還是有點多,今天我以文章的形式將界面設計及其事件行為代碼全部呈現給大家吧!

          一、界面設計

          (一)前端界面設計

          圖1 前端插入一個命令按鈕

          給這個按鈕添加代碼截圖

          圖2 前端命令按鈕代碼

          (二)后臺窗體界面設計

          1、窗體設計

          圖3 窗體

          2、在窗體上添加轉到按鈕Go

          圖4 命令按鈕Go

          3、在窗體上添加主頁按鈕Home

          圖5 命令按鈕Home

          4、在窗體上添加后退按鈕Back

          圖6 命令按鈕Back

          5、在窗體上添加前進按鈕Forward

          圖7 命令按鈕Forward

          6、在窗體上添加刷新按鈕Refresh

          圖8 命令按鈕Refresh

          7、在窗體上添加停止按鈕Stop

          圖9 命令按鈕Stop

          8、在窗體上添加空白頁按鈕About:Blank

          圖10 命令按鈕About:Blank

          9、在窗體上添加網頁html源代碼顯示按鈕WebPagesHtmlSourceCode

          圖11 命令按鈕WebPagesHtmlSourceCode

          10、在窗體上添加圖片控件Image1

          圖12圖片控件Image1

          11、在窗體上添加瀏覽器控件WebBrowser1

          圖13瀏覽器控件WebBrowser1

          12、在窗體上添加狀態欄控件StatusBar1

          圖14狀態欄控件StatusBar1

          二、功能代碼實現

          (一)模塊1代碼:

          '在模塊中聲明私有變量ActiveTB變量為窗體MSForms中的文本框類型的

          Private ActiveTB As MSForms.TextBox

          'CreateShortCutMenu過程用來創建標題為"ShortCut"的右鍵快捷菜單,并添加4個菜單項

          Public Sub CreateShortCutMenu()

          Dim ShortCutMenu As CommandBar '定義ShortCutMenu快捷菜單變量為CommandBar命令欄類型

          Dim ShortCutMenuItem As CommandBarButton '定義ShortCutMenuItem快捷菜單項變量

          '為CommandBarButton命令欄按鈕類型

          Dim sCaption As Variant '定義sCaption菜單項標題變量為Variant可變類型(數組)

          Dim iFaceId As Variant '定義iFaceId菜單項皮膚ID變量為Variant可變類型(數組)

          Dim sAction As Variant '定義sAction菜單項動作名稱變量為Variant可變類型(數組)

          Dim i As Integer

          '以下是初始化菜單項的屬性數組sCaption、iFaceId、sAction

          sCaption=Array("剪切(&C)", "復制(&T)", "貼粘(&P)", "刪除(&D)")

          iFaceId=Array(21, 19, 22, 1786)

          sAction=Array("Action_Cut", "Action_Copy", "Action_Paste", "Action_Delete")

          On Error Resume Next '遇到錯誤,則繼續喚醒執行下一條語句

          Application.CommandBars("ShortCut").Delete

          Set ShortCutMenu=Application.CommandBars.Add("ShortCut", msoBarPopup)

          With ShortCutMenu '對4個菜項單分別賦予屬性:標題、皮膚ID、行為(動作)

          For i=0 To 3

          '設置快捷菜單項為控件類Controls的添加Add控件按鈕msoControlButton事件

          Set ShortCutMenuItem=.Controls.Add(msoControlButton)

          With ShortCutMenuItem '4個菜項單分別賦予屬性:標題、皮膚ID、行為(動作)

          .Caption=sCaption(i)

          .FaceId=Val(iFaceId(i))

          .OnAction=sAction(i)

          End With

          Next

          End With

          End Sub

          'ShowPopupMenu過程是根據文本框中字符的選中狀態設置右鍵

          '快捷菜單項的Enabled屬性后使用ShowPopup方法顯示右鍵快捷菜單

          Public Sub ShowPopupMenu(txtCtr As MSForms.TextBox) 'txtCtr為窗體的文本控件類型

          Set ActiveTB=txtCtr '用ActiveTB指向文本框對象txtCtr

          With Application.CommandBars("ShortCut")

          .Controls(1).Enabled=txtCtr.SelLength > 0 '如果當前文本框中已有選中的字符則"剪切"按鈕有效

          .Controls(2).Enabled=.Controls(1).Enabled '如果當前文本框中已有選中的字符則"復制"按鈕有效

          .Controls(3).Enabled=txtCtr.CanPaste '如果剪貼板中包含對象支持的數據。則"貼粘"按鈕有效

          .Controls(4).Enabled=.Controls(1).Enabled '如果當前文本框中已有選中的字符則"刪除"按鈕有效

          .ShowPopup '顯示快捷菜單

          End With

          End Sub

          '是快捷菜單中單擊"剪切"菜單項所運行的過程。使用Cut 方法將當前選中的文本框中的文本刪除并移至剪貼板

          Public Sub Action_Cut()

          ActiveTB.Cut

          End Sub

          '是快捷菜單中單擊"復制"菜單項所運行的過程。使用Copy方法將文本框選中的文本復制到剪貼板上

          Public Sub Action_Copy()

          ActiveTB.Copy

          End Sub

          '是快捷菜單中單擊"貼粘"菜單項所運行的過程。使用Paste方法把剪貼板上的內容傳送到一個文本框中

          Public Sub Action_Paste()

          ActiveTB.Paste

          End Sub

          '是快捷菜單中單擊"貼粘"菜單項所運行的過程。使用Replace函數將文本框中選中的文本的文本替換成空字符

          Public Sub Action_Delete()

          Dim s As String

          With ActiveTB

          s=.SelText

          .Value=Replace(.Value, s, "")

          End With

          End Sub

          '刪除創建的右鍵快捷菜單

          Public Sub DeleteShortCutMenu()

          On Error Resume Next

          Application.CommandBars("ShortCut").Delete

          End Sub

          (二)窗體代碼:

          '定義strURL為公有的網址變量用于中間傳遞網址,s為保存訪問當前網頁源代碼字符串變量

          '另外定義firstURL, lastURL, URL_Array(500)是網頁首址、尾址,地址數組

          Dim strURL, s, firstURL, lastURL, URL_Array(500) As String

          Dim clc_URL As New Collection '定義clc_URL為地址集合(具有地址重復的排他性,即不重復)

          Dim i As Integer '定義i為地址數組URL_Array( )元素下標,可以在任意過程中使用

          '以下是恢復VBA窗體應有的最小化、最大化按鈕

          Option Explicit

          Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

          Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) 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 Const GWL_STYLE=(-16)

          Private Const WS_THICKFRAME As Long=&H40000 '(恢復大小)

          Private Const WS_MINIMIZEBOX As Long=&H20000 '(最小化)

          Private Const WS_MAXIMIZEBOX As Long=&H10000 '(最大化)

          Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

          Private Const WM_SYSCOMMAND=&H112

          Private Const SC_MAXIMIZE=&HF030&

          Private Sub UserForm_Initialize()

          Call userform1_max_min_Btn_display '重構窗體的最大化最小化按鈕顯示

          WebBrowser1.Silent=True '避免出現腳本錯誤,設置瀏覽器控件為安靜狀態Silent=True

          i=0 '初始化地址數組URL_Array( )下標為0

          'TextBox1.SetFocus '窗體初始化時可設地址欄輸入框TextBox1為起始輸入焦點,即光標初始出現在地址欄輸入框TextBox1

          End Sub

          '窗體尺寸改變事件

          Private Sub UserForm_Resize() '文本框、瀏覽器視圖區隨窗體變化而變化

          TextBox1.Width=UserForm1.Width - TextBox1.Left - 60

          GoBtn.Left=TextBox1.Left + TextBox1.Width + 4

          If UserForm1.Height - WebBrowser1.Top - 50 < 0 Then '若窗體最小化導致

          WebBrowser1.Height=0 '致UserForm1.Height - WebBrowser1.Top - 50 < 0

          '則重置瀏覽器控件高度WebBrowser1.Height為0

          Else '否則按照正常的尺寸跟隨改變

          WebBrowser1.Width=UserForm1.Width - WebBrowser1.Left - 20

          WebBrowser1.Height=UserForm1.Height - WebBrowser1.Top - 50

          End If

          '構筑圖形Image1作為WebBrowser1的邊框背景,設置其Left、Top、Width、Height屬性跟隨WebBrowser1變化

          Image1.Left=WebBrowser1.Left - 2

          Image1.Top=WebBrowser1.Top - 2

          Image1.Width=WebBrowser1.Width + 5

          Image1.Height=WebBrowser1.Height + 5

          '構筑狀態欄StatusBar1,設置其屬性,其中Panels(1)是第一個面板

          StatusBar1.Top=WebBrowser1.Top + WebBrowser1.Height + 3

          StatusBar1.Width=WebBrowser1.Width

          StatusBar1.Panels(1).Width=StatusBar1.Width - 2

          End Sub

          '以下是當TextBox1輸入內容完成回車離開后將剛才輸入的內容傳送到瀏覽器控件

          Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

          WebBrowser1.Navigate (TextBox1.Text) '瀏覽器導航網址進入頁面

          If TextBox1.Text="" Then

          BackBtn.Enabled=False

          ForwardBtn.Enabled=False

          Else

          BackBtn.Enabled=True

          ForwardBtn.Enabled=True

          End If

          s=""

          End Sub

          '文本框的右鍵菜單事件

          Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

          Call CreateShortCutMenu '動態創建快捷菜單

          '若點擊了鼠標上面的第2個鍵即右鍵

          If Button=2 Then ShowPopupMenu ActiveControl '若點擊鼠標右鍵(即第2鍵),調用過程

          'ShowPopupMenu ActiveControl顯示彈出的

          '快捷菜單,其中ActiveControl為活動控件

          End Sub

          Private Sub GoBtn_Click() 'Go轉向按鈕的的轉向事件

          WebBrowser1.Navigate (TextBox1.Text) '瀏覽器導航網址進入頁面

          If TextBox1.Text="" Then

          BackBtn.Enabled=False

          ForwardBtn.Enabled=False

          Else

          BackBtn.Enabled=True

          ForwardBtn.Enabled=True

          End If

          s=""

          End Sub

          '頁面標題進行動態修改窗體標題過程

          Sub Page_Title()

          Dim start_pos, end_pos As Integer

          Dim title As String

          If TextBox1.Value <> "" And TextBox1.Value <> "about:blank" Then '若地址收入欄非空且也不為空白頁

          s="" '當點擊源碼查看按鈕WebPagesHtmlSourceCodeBtn時,s源碼字符串置空

          's獲取最新訪問的網頁的源碼(用WebBrowser1.Document.DocumentElement.innerHTML輕易實現)

          s=s & WebBrowser1.Document.DocumentElement.innerHTML

          s=UCase(s) '將s中的小寫字符統統變為大寫,這里用了UCase(s)函數

          start_pos=Val(InStr(s, "<TITLE>")) + 7

          end_pos=Val(InStr(s, "</TITLE>"))

          title=Mid(s, start_pos, end_pos - start_pos)

          UserForm1.Caption="WebBrowser-" & title

          Else

          UserForm1.Caption="WebBrowser"

          End If

          End Sub

          '當新網頁文檔內容完全加載完時,調用頁面標題進行動態修改窗體標題事件

          Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

          Call Page_Title '網頁文檔加載完后調用網頁標題去修改窗體標題功能

          Call userform1_max_min_Btn_display '恢復最大化、最小化按鈕顯示

          End Sub

          '瀏覽器控件在新導航NavigateComplete2頁面完成后觸發的事件

          Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)

          '以下是將新頁面的網址送達文本框TextBox1

          TextBox1.Value=WebBrowser1.LocationURL

          '狀態欄第一個面板StatusBar1.Panels(1)同步獲取網址信息

          StatusBar1.Panels(1).Text=WebBrowser1.LocationURL

          Dim X As String

          On Error Resume Next

          X=TextBox1.Value

          clc_URL.Add X, CStr(X) '新導航網址后,將新導航的網頁地址存入集合clc_URL

          If Err=0 Then '若果錯誤為0即不重復

          URL_Array(i)=X '將不重復的地址傳送到地址素組URL_Array( ),且下面進行i遞增1

          i=i + 1

          End If

          Err.Clear '若有錯,則清除錯誤

          On Error GoTo 0

          BackBtn.Enabled=True

          ForwardBtn.Enabled=True

          End Sub

          '瀏覽器控件當準備產生新窗口時

          Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)

          Cancel=True '終止在新窗口產生網頁為真

          WebBrowser1.Navigate strURL '瀏覽器控件網址導航網址為中間傳遞的網址變量strURL

          s="" '當新網頁欲想在新窗口中呈現時,重新先將s置空

          End Sub

          '瀏覽器控件狀態文本改變時(即 活動網頁中點擊了的文本--超鏈接對象),將超鏈接的文本鏈接信息Text傳遞到

          '中間傳遞的網址變量strURL

          Private Sub WebBrowser1_StatusTextChange(ByVal Text As String)

          strURL=Text

          End Sub

          Private Sub HomeBtn_Click() '回到主頁

          WebBrowser1.GoHome

          End Sub

          Private Sub BackBtn_Click() '頁面后退

          firstURL=URL_Array(0) '獲取地址數組存放網頁的首址

          '若地址欄為空,或者地址欄為空白,或者地址欄是網頁的首址

          If TextBox1.Value="" Or TextBox1.Value="about:blank" Or TextBox1.Value=firstURL Then

          MsgBox "No site display or arrived at first site address!"

          BackBtn.Enabled=False

          Else

          WebBrowser1.GoBack

          ForwardBtn.Enabled=True

          End If

          End Sub

          Private Sub ForwardBtn_Click() '頁面前進

          If TextBox1.Value="" Then

          lastURL=URL_Array(0)

          MsgBox "No site display or arrived at last site address!!"

          ForwardBtn.Enabled=False

          Else

          lastURL=URL_Array(clc_URL.Count - 1) '獲取地址數組存放網頁跳轉的當前尾址

          '若地址欄為空白,或者地址欄是網頁跳轉的最終當前尾址

          If TextBox1.Value="about:blank" Or TextBox1.Value=lastURL Then

          MsgBox "No site display or arrived at last site address!!"

          ForwardBtn.Enabled=False

          Else

          WebBrowser1.GoForward

          BackBtn.Enabled=True

          End If

          End If

          End Sub

          Private Sub RefreshBtn_Click() '刷新頁面

          If TextBox1.Value="" Then '如果地址欄輸入框TextBox1為空

          BackBtn.Enabled=True '則恢復后退BackBtn、前進ForwardBtn按鈕可用,且不刷新頁面

          ForwardBtn.Enabled=True

          Else '否則,刷新頁面,并且調用過程Page_Title更改窗體標題

          WebBrowser1.Refresh

          Call Page_Title '刷新后調用網頁標題去修改窗體標題功能

          Call userform1_max_min_Btn_display '恢復最大化、最小化按鈕顯示

          End If

          End Sub

          Private Sub StopBtn_Click() '頁面停止

          WebBrowser1.Stop

          End Sub

          '以下是窗體上相對瀏覽器控件WebBrowser1的幾個控制按鈕的事件

          Private Sub About_Blank_Btn_Click() '設置空白頁

          WebBrowser1.Navigate "about:blank"

          End Sub

          Private Sub WebPagesHtmlSourceCodeBtn_Click() '查看訪問當前網頁的HTML源碼

          If TextBox1.Value <> "" Then '若地址收入欄非空

          s="" '當點擊源碼查看按鈕WebPagesHtmlSourceCodeBtn時,s源碼字符串置空

          's獲取最新訪問的網頁的源碼(用WebBrowser1.Document.DocumentElement.innerHTML輕易實現)

          s=s & WebBrowser1.Document.DocumentElement.innerHTML

          Else

          s="No Web Pages!"

          End If

          MsgBox s

          End Sub

          Sub userform1_max_min_Btn_display() '窗體的最大化最小化按鈕顯示

          Dim hWndForm As Long

          Dim IStyle As Long

          hWndForm=FindWindow("ThunderDFrame", Me.Caption)

          IStyle=GetWindowLong(hWndForm, GWL_STYLE)

          IStyle=IStyle Or WS_THICKFRAME '還原

          IStyle=IStyle Or WS_MINIMIZEBOX '最小化

          IStyle=IStyle Or WS_MAXIMIZEBOX '最大化

          SetWindowLong hWndForm, GWL_STYLE, IStyle

          PostMessage hWndForm, WM_SYSCOMMAND, SC_MAXIMIZE, 0 '使其窗口最大化

          End Sub

          三、瀏覽器運行測試效果截圖

          (一)在瀏覽器地址欄輸入電子科技大學網址

          圖15 電子科大主頁面

          (二)電子科技大學歷史頁面

          圖16 電子科大歷史介紹

          (三)瀏覽器地址欄輸入成都農業科技職業學院網址的頁面

          圖17 成農院主頁

          (四)點擊成都農業科技職業學院站群導航準備進入信息技術分院

          圖18 成農院站群到導航

          (五)點擊成都農業科技職業學院站群導航進入信息技術分院

          圖19 成農院信息分院頁面

          (六)點擊Home按鈕回到瀏覽器空白主頁

          圖20 回到空白主頁

          好了,我終于分享給大家了全部的設計過程,各位可以可圈可點,可以在這個基礎上進行改進開發,比如設計選項卡式的面板、站點收藏、歷史紀錄等等功能。

          最后,還是感謝大家的關注(頭條號“跟我學office高級辦公”)和點評哦!

          +

          ebBrowser控件是Internet Explorer的主窗口,它是作為一個ActiveX控件來包裝的。用戶可以使用WebBrowser控件打開任何IE能夠顯示的Web頁面,并提取頁面數據。如有自己的網站,可運用WebBrowser控件實現EXCEL文檔和服務器間數據交換

          WebBrowser控件是作為一個ActiveX控件來包裝的,通常運用在VBA標準控件可滿足大多數應用程序的需求,為了進一步擴展VBA功能,可在應用程序中使用ActiveX控件。ActiveX控件是為用戶進行程序設計所定制的可重用對象,可以極大地擴展VBA的使用范圍。

          1、添加WebBrowser控件到工具箱

          ActiveX控件是可選控件,它可以被添加到【工具箱】中并在窗體中使用。在默認情況下,【工具箱】將只顯示標準控件,向【工具箱】添加WebBrowser控件的步驟如下:

          • 第一步、鼠標右擊【工具箱】空白處,彈出下面的菜單如圖:

          • 第二步、單擊【附加控件】菜單,打開【附加控件】對話框如圖:

          • 第三步、下拉滾動條,在【可用控件】列表中單擊所需的ActiveX控件,如Microsoft Web Browser瀏覽器控件,【工具箱】中顯示該控件如圖:

          2、WebBrowser控件常用屬性、事件和方法

          I、WebBrowser控件常用屬性

          • Application:返回WebBrowser控件的自動化對象;
          • MaxLength:設置文字框中能夠輸入字符的最大數量。默認為0,表示輸入字符沒有數量限制;
          • MultiLine:設置文字框能否接受和顯示多行文本。屬性值為True顯示多行文本,False只容納單行文本;
          • PasswordChar:導航發生前激發,刷新時不激發;
          • ScrollBars:設置文字框是否有垂直或水平滾動條;
          • Text:設置或返回文字框中內容,與Value屬性相同。

          II、WebBrowser控件常用事件

          • DocumentComplete:當整個文檔完成時激發,刷新頁面不激發;
          • DownloadBegin:當某項下載操作已經開始后激發,刷新也可激發此事件;
          • DownloadComplete:當某項下載操作已經完成后激發,刷新也可激發此事件;
          • BeforeNavigate2:導航發生前激發,刷新時不激發;
          • NavigateComplete2:導航完成后激發,刷新時不激發。

          III、WebBrowser控件常用方法

          • GoBack:相當于IE的【后退】按鈕,使你在當前歷史列表中后退一項;
          • GoForward:相當于IE的【前進】按鈕,使你在當前歷史列表中前進一項;
          • GoHome:相當于IE的“ 主頁 ”按鈕,連接用戶默認的主頁;
          • Navigate:連接到指定的URL;
          • Refresh:刷新當前頁面。

          3、WebBrowser控件動態建立網頁

          如前所述,工具箱中添加WebBrowser控件后,將其拖入窗體并設置適當尺寸,如圖:

          在窗體Initialize事件編寫代碼如下:

          Private Sub UserForm_Initialize()
          WebBrowser1.Navigate ("about:blank")
          WebBrowser1.Document.Clear
          WebBrowser1.Document.Open
          WebBrowser1.Document.write ("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>")
          WebBrowser1.Document.write ("<html>")
          WebBrowser1.Document.write ("<head>")
          WebBrowser1.Document.write ("<title>WebBrowser控件建立動態網頁</title>")
          WebBrowser1.Document.write ("<meta charset='utf-8'/>")
          WebBrowser1.Document.write ("<style>")
          WebBrowser1.Document.write ("</style>")
          WebBrowser1.Document.write ("<script type='text/javascript'>")
          WebBrowser1.Document.write ("</script>")
          WebBrowser1.Document.write ("</head>")
          WebBrowser1.Document.write ("<body scroll='no' bgcolor='#E3F3F9' style='border:none;'>")
          WebBrowser1.Document.write ("<form name='myFc'>")
          WebBrowser1.Document.write ("<table>")
          WebBrowser1.Document.write ("<tr><th colspan=2 style='text-align:left; font-size:10pt; color:#a51020;'>1、文本框</th></tr>")
          WebBrowser1.Document.write ("<tr><td>  姓名:</td><td>")
          WebBrowser1.Document.write ("<input id='myName' style='width:100px; color:#ff0000;' value='張三'/></td></tr>")
          WebBrowser1.Document.write ("<tr><th colspan=2 style='text-align:left; font-size:10pt; color:#e51020;'>2、單選按鈕</th></tr>")
          WebBrowser1.Document.write ("<tr><td>  性別:</td><td>")
          WebBrowser1.Document.write ("<input type='radio' name='myGender' value='1' checked/>男 ")
          WebBrowser1.Document.write ("<input type='radio' name='myGender' value='0'/>女</td></tr>")
          WebBrowser1.Document.write ("<tr><td>  簡介:</td><td>")
          WebBrowser1.Document.write ("<textarea id='myIntroduction' style='width:360px; height:160px; color:#555555;'>")
          WebBrowser1.Document.write ("WebBrowser控件是Internet Explorer的主窗口,它是作為一個ActiveX控件來包裝的。")
          WebBrowser1.Document.write ("用戶可以使用WebBrowser控件打開任何IE能夠顯示的Web頁面,")
          WebBrowser1.Document.write ("并提取頁面數據?如有自己的網站,可運用WebBrowser控件實現EXCEL文檔和服務器間數據交換")
          WebBrowser1.Document.write ("</textarea></td></tr>")
          WebBrowser1.Document.write ("</table>")
          WebBrowser1.Document.write ("</form>")
          WebBrowser1.Document.write ("</body>")
          WebBrowser1.Document.write ("</html>")
          WebBrowser1.Document.Close
          End Sub

          注:窗體中添加WebBrowser控件,在窗體初始化事件Initialize中編寫代碼,主要通過WebBrowser控件write方法將HTML文檔寫入空白文檔

          窗體運行效果如圖:

          4、WebBrowser控件獲取網頁信息

          WebBrowser控件和網頁交互使用需要一定程度的網頁編程技術,網頁基本框架由超文本標記語言(Hyper Text Markup Language,HTML)搭建,網頁外觀由層疊樣式表(Cascading Style Sheets,CSS)和一些HTML標簽屬性來修飾完成,網頁動態效果通常使用JavaScript腳本語言來實現。HTML、CSS和JavaScript(JS)技術構成客戶端(前端)網頁編程三大基礎,運用WebBrowser控件和網頁交換需要掌握HTML、CSS和JS基本知識。

          如果有自己的網站,具備服務器端(后端)編程技能,還可以通過WebBrowser控件專門制作和EXCEL對接的網頁,從而將強的的網頁功能導入EXCEL中。

          運用WebBrowser控件和網頁交換需要了解網頁文檔結構和內容,如網頁excelVBA.html文檔如下:

          【HTML文檔(http://www.galaxystatistics.com/excel/excelVBA.html)】

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <title>Excel Train
          <meta charset="utf-8"/>
          <style></style>
           <script type="text/javascript">
          function oSum(x,y) {return x+y;}
          //無參數調用  
          function alertNull(){alert("WebBrowser call!");  }
          //有參數調用  
          function callWithPar(name, address) {  
          alert("Name is " + name + "; address is " + address);  
          }  
          </script>
          </head>
          <body scroll="yes" bgcolor="#E3F3F9" style="border:none">
          <form name="myFc">
          <table>
          <tr><th colspan=2 style="text-align:left; font-size:10pt; color:#a51020;">1、文本框</th></tr>
          <tr><td>  姓名:</td>
          <td><input id="myName" style="width:100px; color:#ff0000;" value="張三"/></td></tr>
          <tr><th colspan=2 style="text-align:left; font-size:10pt; color:#e51020;">2、單選按鈕</th></tr>
          <tr><td>  性別:</td><td>
          <input type="radio" name="myGender" value="1" checked/>男 
          <input type="radio" name="myGender" value="0"/>女</td></tr>
          <tr><th colspan=2 style="text-align:left; font-size:10pt; color:#e51020;">3、復選框</th></tr>
          <tr><td>  愛好:</td><td>
          <input type="checkbox" name="myLike" value="1"/>籃球 
          <input type="checkbox" name="myLike" value="2"/>游泳 
          <input type="checkbox" name="myLike" value="3"/>跑步</td></tr>
          <tr><th colspan=2 style="text-align:left; font-size:10pt; color:#e51020;">4、下拉列表</th></tr>
          <tr><td>  專業:</td><td><select id="myMajor">
              <option value="1">數學</option>
              <option value="2">統計學</option>
              <ption value="3">壽險精算</option>
              <option value="4">R語言</option>
          </select></td></tr>
          <tr><th colspan=2 style="text-align:left; font-size:10pt; color:#e51020;">5、多行文本</th></tr>
          <tr><td>  簡介:</td><td>
          <textarea id="myIntroduction" style="width:300px; height:100px; color:#555555;">
          WebBrowser控件是Internet Explorer的主窗口,它是作為一個ActiveX控件來包裝的。
          用戶可以使用WebBrowser控件打開任何IE能夠顯示的Web頁面,并提取頁面數據。
          如有自己的網站,可運用WebBrowser控件實現EXCEL文檔和服務器間數據交換
          </textarea></td></tr>
          <tr><th colspan=2 style="text-align:left; font-size:10pt; color:#e51020;">6、DIV區塊</th></tr>
          <tr><td>  效果:</td><td>
          <div id="myEffect" style="width:300px; height:50px; border:#aaaaaa 1px solid; dsiplay:inline;">
          <b style="text-align:center; width:100%; padding-top:15px;">這是黑體效果</b>
          </div></td></tr>
          <tr><th colspan=2 style="text-align:left; font-size:10pt; color:#e51020;">7、圖片</th></tr>
          <tr><td>  頭像:</td><td>
          <img src="http://studio.galaxystatistics.com/shiny/rSHIndex/pic/vba1.jpg" id="myImg" style="width:200px; height:260px; color:#ff0000;"/>
          </td></tr>
          <tr><th colspan=2 style="text-align:left; font-size:10pt; color:#e51020;">8、內崁iFrame框架</th></tr>
          <tr><td>  框架:</td>
          <td><iframe src="http://www.galaxystatistics.com/excel/excelVBA1.html" id="myIframe" style="width:380px; height:260px; color:#ff0000;"/></td></tr>
          </table>
          </form>
          </body>
          </html>

          網頁excelVBA.html涉及HTML文檔的常用標簽,通過WebBrowser控件和指定網頁互動包括獲取或設置網頁標簽的值(文本)或屬性值,調用網頁JS函數等"。

          通常在EXCEL VBA中通過WebBrowser控件打開網頁時,窗體中的WebBrowser控件顯示網頁時會有立體邊框出現。為了去除這一邊框,可在網頁復制開始第1行定義文檔類型代碼,同時復制在25行的BODY標簽屬性style="border:none"。

          根據網頁excelVBA.html內容,在窗體【獲取網頁信息】命令按鈕的Click事件中輸入如下代碼:

          Private Sub CommandButton1_Click()
          Dim doc As Object
          Dim id As Integer
          '打開指定網頁
          WebBrowser1.Navigate "http://www.galaxystatistics.com/excel/excelVBA.html"
          Set doc=WebBrowser1.Document
          MsgBox "文本框信息:" & doc.getElementById("myName").Value
          MsgBox "單選按鈕數量:" & doc.getElementById("myFc").myGender.Length
          MsgBox "單選按鈕選項value屬性:" & doc.getElementById("myFc").myGender(0).Value
          MsgBox "單選按鈕選項checked屬性:" & doc.getElementById("myFc").myGender(0).Checked
          MsgBox "復選框數量:" & doc.getElementById("myFc").myLike.Length
          MsgBox "復選框選項value屬性:" & doc.getElementById("myFc").myLike(0).Value
          MsgBox "復選框選項checked屬性:" & doc.getElementById("myFc").myLike(0).Checked
          MsgBox "下拉列表數量:" & doc.getElementById("myMajor").Options.Length
          MsgBox "下拉列表索引:" & doc.getElementById("myMajor").selectedIndex
          id=doc.getElementById("myMajor").selectedIndex
          MsgBox "下拉列表選中文本:" & doc.getElementById("myMajor").Options(id).Text
          MsgBox "下拉列表選中值:" & doc.getElementById("myMajor").Options(id).Value
          MsgBox "多行文本內容:" & doc.getElementById("myIntroduction").Value
          MsgBox "DIV區塊文本:" & doc.getElementById("myEffect").innerText
          MsgBox "DIV區塊HTML:" & doc.getElementById("myEffect").innerHTML
          MsgBox "圖片路徑:" & doc.getElementById("myImg").getAttribute("SRC")
          MsgBox "圖片寬度:" & doc.getElementById("myImg").Style.Width
          Dim doc1 As Object
          Set doc1=WebBrowser1.Document.getElementById("myIframe").Document    '設置框架文檔對象
          MsgBox "框架文本框信息:" & doc1.getElementById("myName").Value
          End Sub

          注:代碼中設置網頁文本對象為doc,對于網頁標簽內容的提取基本按DOM文檔結構解析。

          運行窗體,點擊【獲取網頁信息】命令按鈕,結果如下圖:

          在VBA環境中通過WebBrowser控件提取網頁信息,通常將代碼編寫在WebBrowser控件的DocumentComplete事件中,即當整個文檔完成時觸發該事件,這時網頁文檔加載完畢,可保證提取到完整信息。樣例代碼如下:

          Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
          Application.StatusBar="網頁文檔下載完畢!"      '在狀態欄中輸入提示信息
          Dim doc As Object
          Set doc=WebBrowser1.Document
          End Sub

          注:DocumentComplete確保WebBrowser下載完成網頁文檔后,通過文檔Document對象可提取網頁標簽信息

          6、WebBrowser控件調用網頁JS函數

          根據網頁excelVBA.html內容,在窗體【調用網頁JS函數】命令按鈕的Click事件中輸入如下代碼:

          Private Sub CommandButton2_Click()
          '調用網頁中無參JavaScript函數alertNull
          WebBrowser1.Document.parentwindow.execScript "alertNull()", "JavaScript"
          '調用網頁中有參JavaScript函數callWithPar
          WebBrowser1.Document.parentwindow.execScript "callWithPar('銀河統計工作室','哈爾濱')", "JavaScript"
          MsgBox WebBrowser1.Document.Script.oSum(25, 75)    '調用JS函數返回值
          End Sub

          注:代碼中調用的JS函數在網頁文本script標簽之間。注意,打開對應網頁后再運行【調用網頁JS函數】命令按鈕

          運行窗體,點擊【調用網頁JS函數】命令按鈕,結果如下圖:

          本文我們創建了一個InternetExplorer對象并設置了一些屬性。然后,使用.navigate方法打開網頁,并使用.document.parentWindow.execScript方法執行了一個簡單的JavaScript代碼。

          請注意,使用InternetExplorer對象加載和執行JavaScript代碼需要將"Microsoft Internet Controls"引用添加到你的VBA項目中。你可以在VBA編輯器的"工具"菜單中的"引用"對話框中勾選該引用。

          在VBA中,除了InternetExplorer對象,還可以使用其他瀏覽器對象來加載和操作Web頁面中的JavaScript代碼。

          • Chrome瀏覽器對象:可以使用Chrome瀏覽器的COM接口(Chrome COM Interface)來在VBA中加載和操作Chrome瀏覽器中的JavaScript代碼。這需要先安裝Chrome瀏覽器COM接口,然后通過創建Chrome瀏覽器對象來實現。示例代碼:
          Sub RunJavaScriptInChrome()
              Dim Chrome As Object
              ' 創建 Chrome 瀏覽器對象
              Set Chrome=CreateObject("ChromeTab.ChromeBrowser")
              ' 打開指定網址
              Chrome.navigate "http://www.example.com"
              ' 等待加載完畢
              Do While Chrome.Busy Or Chrome.readyState <> 4
                  DoEvents
              Loop
              ' 執行 JavaScript 代碼
              Chrome.ExecuteScript "alert('Hello, JavaScript in Chrome!');"
              ' 關閉 Chrome 瀏覽器對象
              Chrome.Quit
              ' 釋放對象引用
              Set Chrome=Nothing
          End Sub

          Firefox瀏覽器對象:類似地,也可以使用Firefox瀏覽器的COM接口來在VBA中加載和操作Firefox瀏覽器中的JavaScript代碼。這同樣需要先安裝Firefox瀏覽器COM接口,并通過創建Firefox瀏覽器對象來實現。以下是一個示例代碼:

          Sub RunJavaScriptInFirefox()
              Dim Firefox As Object
              ' 創建 Firefox 瀏覽器對象
              Set Firefox=CreateObject("Mozilla.Browser")
              ' 打開指定網址
              Firefox.navigate "http://www.example.com"
              ' 等待加載完畢
              Do While Firefox.Busy Or Firefox.readyState <> 4
                  DoEvents
              Loop
              ' 執行 JavaScript 代碼
              Firefox.ExecuteScript "alert('Hello, JavaScript in Firefox!');"
              ' 關閉 Firefox 瀏覽器對象
              Firefox.Quit
              ' 釋放對象引用
              Set Firefox=Nothing
          End Sub

          使用WebBrowser控件按網址打開服務器端網頁后,即建立起EXCEL和網頁HTML文檔的數據交換通道,實現在VBA中操控網頁、自動抓取信息等功能。

          試網站和 Web 應用程序的移動響應能力是每個 Web 設計師和開發人員必須處理得最令人沮喪的任務之一。

          它通常涉及聘請昂貴的代理商和購買訂閱計劃。但現在也有更實惠的解決方案,比如 LT 瀏覽器。

          LT Browser是一款專為設計人員和開發人員設計的新型瀏覽器,可用于在 50 多種移動設備上測試網站。而且它是免費使用的!

          我們仔細研究了這個偉大的新工具,看看它如何在網站開發的移動測試階段受益。讓我們看看這個瀏覽器能夠提供什么。

          什么是 LT 瀏覽器?

          LT Browser 由 LambdaTest 開發,是一款專門測試網站響應能力的新型瀏覽器。它包括 50 多個流行移動設備的視口,讓您只需點擊幾下即可立即測試移動網站。

          與為開發人員打造的其他瀏覽器不同,LT Browser 專注于解決 Web 開發過程中的一個,也是最大的問題之一——移動測試。它提供了測試網站和 Web 應用程序的響應能力、調試甚至獲取性能報告所需的所有工具,所有這些都集中在一處。

          為什么要使用 LT 瀏覽器?

          全球移動互聯網用戶超過43.2億。移動用戶占互聯網總流量的 54% 以上。

          無論您是在簡單網站上工作的自由設計師,還是在大型網絡應用程序上工作的團隊,LT Browser 都提供了一組寶貴的工具。

          毋庸置疑,移動平臺現在是幾乎所有 Web 開發人員和設計人員的主要關注點。但它也是最具挑戰性的平臺。為桌面和移動平臺開發之間仍然存在很大差距。缺乏可用于移動可用性測試和響應性測試的工具是問題的主要部分。

          多虧了 LT Browser 之類的工具,這個問題很快就會不存在。在 LT 瀏覽器的幫助下,您將不再需要求助于昂貴的工具或聘請代理來移動測試您的網站和網絡應用程序。

          無論您是在簡單網站上工作的自由設計師,還是在大型網絡應用程序上工作的團隊,LT 瀏覽器都提供了一組寶貴的工具來解決開發適合移動設備的網站的一些最大問題。

          主要特點

          LT 瀏覽器就像任何其他瀏覽器一樣工作。它與 Windows、macOS 甚至 Ubuntu 兼容。您可以下載并安裝桌面應用程序并創建一個免費的 LambaTest 帳戶已開始使用。

          乍一看,LT Browser 似乎是一個簡單的瀏覽器。但它包含了很多很棒的功能。以下是它的一些最佳功能。

          在 50 多個設備上進行測試

          使用 LT 瀏覽器,您可以在 50 多種不同的設備視口上測試網站和 Web 應用程序。其中包括支持從 iPhone 到三星 Galaxy 標簽、MacBook 以及介于兩者之間的所有設備的移動設備、平板電腦和桌面設備。它甚至可以讓您同時在兩臺設備上查看網站。

          如果在列表中找不到設備,也可以輕松創建自定義移動或桌面視口。設置新視口非常容易。

          即時調試

          LT Browser 最酷的功能之一是它的 DevTools 控制臺,它支持實時調試。如果您在網站測試中遇到問題,您可以快速切換到調試模式并找到解決方案。

          LT 瀏覽器中的 DevTools 還支持熱重載,這意味著您在調試模式下對代碼所做的任何更改都將在移動視口中實時預覽。

          這使您可以立即看到所做的更改。對于開發人員進行調試以及設計人員進行不同設計選擇的試驗,這是一項非常有價值的功能。

          錄制視頻和截圖

          在網站中發現了您想與團隊討論的問題?或者想向其他團隊成員請求新功能?然后,您可以直接從 LT 瀏覽器輕松抓取屏幕截圖或錄制視頻剪輯,以與您的團隊或客戶分享。

          您捕獲的所有視頻剪輯和屏幕截圖都將整齊地存儲在瀏覽器的“媒體”部分,因此您無需在計算機硬盤驅動器中搜索它們。

          網絡節流

          并非世界上的每個人都擁有超快的互聯網連接。大多數移動用戶仍在以 3G 速度瀏覽網頁。

          使用 LT Browser,您可以對網絡進行節流,以體驗不同網絡條件下的網站性能。這對于查看您的網站性能如何、加載頁面需要多長時間以及動畫交互在慢速互聯網條件下如何工作非常有用。

          即時錯誤報告

          有許多肉眼看不到的錯誤和問題。但是,您不必掃描數百行代碼來查找您的網站出了什么問題。LT 瀏覽器具有快速錯誤報告功能,可提供您網站上發現的最大問題的詳細摘要。

          Google Lighthouse 性能報告

          如果您想查看您的網站在 Google Lighthouse 測試中的表現如何,只需單擊一下即可。LT 瀏覽器包含一個由 Google Lighthouse 提供支持的性能測試選項,可為您提供有關網站性能不同方面的詳細報告。

          它還將對需要改進的網站領域提供建議和建議。

          第三方應用程序集成

          LT Browser 還支持數十種第三方應用程序集成,包括 Slack 和 Asana。這樣可以更輕松地跟蹤錯誤和報告問題。

          例如,您可以從 LT Browser 抓取屏幕截圖,將其標記為錯誤,然后直接從瀏覽器將其分配給團隊中的某個人查看。

          它要多少錢?

          LT Browser 完全免費使用,沒有任何限制。該瀏覽器作為 LambdaTest 跨瀏覽器測試平臺的一部分提供。

          如果您想將移動測試提升到一個新的水平,您可以利用 Lambdatest 云平臺中提供的許多其他工具,包括自動化測試、模擬器上的本機應用程序測試等。

          Lambatest 有一個免費計劃和高級計劃,每月 15 美元起。

          結論

          LT Browser 是網頁設計師和開發者必備的工具。在移動測試網站和 Web 應用程序方面,它為您提供了難以置信的價值。

          試一下,親自看看它的功能,你肯定會喜歡的。


          主站蜘蛛池模板: 国产婷婷一区二区三区| 国产精品一区二区四区| 成人精品一区二区三区中文字幕| 日本中文字幕一区二区有码在线| 日本人真淫视频一区二区三区| 97久久精品无码一区二区天美 | 日韩精品一区二区亚洲AV观看| 国产精品亚洲一区二区三区久久 | 久久国产精品一区免费下载 | 精品视频一区二区三区四区| 亚洲一区二区三区影院| 日本一区午夜爱爱| 麻豆AV天堂一区二区香蕉 | 亚洲Av永久无码精品一区二区| 免费视频一区二区| 国产亚洲3p无码一区二区| 久久se精品一区二区影院| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 亚洲一区二区三区久久久久| 曰韩精品无码一区二区三区| 中文字幕一区二区三区永久| 久久国产香蕉一区精品| 成人一区二区免费视频| 熟妇人妻系列av无码一区二区 | 国产精品99精品一区二区三区| 亚洲AV无码一区二区三区电影 | 国产一区二区三区手机在线观看| 久久精品无码一区二区三区免费 | 国语精品一区二区三区| 亚洲熟妇av一区二区三区漫画| 国产一区二区三区乱码| 亚洲国产一区国产亚洲| 蜜桃臀无码内射一区二区三区| 亚洲码欧美码一区二区三区| 国产一区二区不卡老阿姨| 精品一区二区91| 中文字幕精品一区| 亚洲一区中文字幕在线观看| 日韩精品一区二区三区中文3d | 欧美亚洲精品一区二区| 武侠古典一区二区三区中文|