Excel VBA網路爬蟲:Dim宣告變數、資料型態及InputBox函數

Exce VBA較複雜程式都需要變數,本文以網路爬蟲取得央行銀行存款利率為例,介紹如何以Dim宣告變數,有哪些資料型態,再以InputBox函數輸入網址取得網頁資料。

Excel取得網頁資料有兩個技術性課題:如何有效取得資料、所取得資料如何整理。這一章裡面主要分享VBA程式碼運用在Excel取得網頁資料,本節重點介紹InputBox函數:

一、VBA網路爬蟲程式碼

這一節完整的VBA程式碼如圖所示,除了標藍色部份和「Connection=WebAress2」之外,其餘和上一節相同。

二、Dim宣告變數及資料型態

「Dim WebAress1, WebAress2 As String」是使用 Dim 宣告變數的標準Basic語法。各位讀者在國中開始接觸數學方程式,應該都有學過x,y,z等變數的用法,VBA裡的Dim X As Y也是相同概念,其中X是任意變數,Y則是資料類型,主要有Integer(整數)、Single(數字)String(字串)等,詳細可參考如圖Excel說明手冊。宣告變數有兩個好處,其一是讓程式結構很完整,邏輯清楚容易理解,其二是有效運用資源,因為如果不宣告變數,系統預設是可作為任意類型的「Variant」,佔用記憶體容量是最大的。

三、VBA Input函數

「WebAress1 = InputBox(“請輸入網頁網址”, “網址輸入”)」,將游標移到程式碼的「InputBox」文字中,按下「F1」,即會跳出Excel關於這個函數的說明:「在對話方塊中顯示提示,等待使用者輸入文字或按一下按鈕,並傳回包含文字方塊內容的字串。」如圖所示,第一個組件(參數)prompt是對話方塊中的訊息,在此範例是「”請輸入網頁網址”」,第二個組件title是對話方塊的標題列,於稍後步驟執行程式時,一看就能理解這兩個組件的用法。

四、VBA文字合併

關於程式碼最後補充兩點:「WebAress2 = “URL;” & WebAress1」,這是VBA裡合併字串用法,等同於Excel的CONCATENATE函數,後面的WebAress1是InputBox帶出來,本身即為文字資料類似,所以毋須再加雙引號。從WebAress1到WebAress2,方能引用對話方塊所輸入的網址:「Connection:=WebAress2」,像這樣多個變數依序組合變化,也是VBA寫程式的主要技巧之一。
快速組合鍵「Alt+F8」叫出巨集的對話方塊,選擇「DownloadWeb」巨集,即為剛才所編輯的程式碼,可以按下右下角的「選項」。

五、巨集選項設置

在「巨集選項」這裡,可以編輯維護「快速鍵」及「描述」。

六、VBA程式叫出輸入資料視窗

執行巨集,跳出InputBox對話方塊,輸入中央銀行所發布五大銀行利率的網址,參考這個對話方塊,應該能理解InputBox函數各參數的用法。

七、依照所輸入網址取得網頁資料

輸入網址,按「確定」之後,Excel即取得中央銀行所發布的五大銀行利率網頁資料。

八、網頁截圖

附上中央銀行網頁截圖供參考。

VBA的Inputbox函數與Inputbox方法

這一節介紹如何運用InputBox函數輸入網址、取得網頁資料。Excel強大的地方之一,在於可以連結其他儲存格內容或者進一步作處理,以這裡的範例而言,除了在對話方塊直接輸入網址,也希望是在同一工作表或者其他工作表已經有填寫好的網址,然後如同慣常的Excel操作,於對話方塊引用連結到其他儲存格。這個InputBox函數並沒有辦法做到﹐必須便VBA裡面的InputBox方法,留待下節介紹。

每天學習,每天充電:VBA爬蟲文章合集

最新文章: