贊贊小屋

Excel VBA網路爬蟲,InputBox函數開啟對話方塊,輸入中央銀行網址取得利率

Windows作業系統的動態連結程式庫(DLL)提供共享代碼給其他應用程式,最常見為對話方塊(視窗)。本文介紹以VBA InputBox函數開啟Excel對話方塊,網路爬蟲取得央行利率。

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

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

Excel VBA網路爬蟲,InputBox函數開啟對話方塊,輸入中央銀行網址取得利率 VBA網路爬蟲 第1張

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

Excel VBA網路爬蟲,InputBox函數開啟對話方塊,輸入中央銀行網址取得利率 VBA網路爬蟲 第2張

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

Excel VBA網路爬蟲,InputBox函數開啟對話方塊,輸入中央銀行網址取得利率 VBA網路爬蟲 第3張

四、關於程式碼最後補充兩點:「WebAress2 = “URL;” & WebAress1」,這是VBA裡合併字串用法,等同於Excel的CONCATENATE函數,後面的WebAress1是InputBox帶出來,本身即為文字資料類似,所以毋須再加雙引號。從WebAress1到WebAress2,方能引用對話方塊所輸入的網址:「Connection:=WebAress2」,像這樣多個變數依序組合變化,也是VBA寫程式的主要技巧之一。

快速組合鍵「Alt+F8」叫出巨集的對話方塊,選擇「DownloadWeb」巨集,即為剛才所編輯的程式碼,可以按下右下角的「選項」。

Excel VBA網路爬蟲,InputBox函數開啟對話方塊,輸入中央銀行網址取得利率 VBA網路爬蟲 第4張

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

Excel VBA網路爬蟲,InputBox函數開啟對話方塊,輸入中央銀行網址取得利率 VBA網路爬蟲 第5張

六、執行巨集,跳出InputBox對話方塊,輸入中央銀行所發布五大銀行利率的網址:「www.cbc.gov.tw/tw/cp-371-1040-5C7A0-1.html」。參考這個對話方塊,應該能理解InputBox函數各參數的用法。

Excel VBA網路爬蟲,InputBox函數開啟對話方塊,輸入中央銀行網址取得利率 VBA網路爬蟲 第6張

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

Excel VBA網路爬蟲,InputBox函數開啟對話方塊,輸入中央銀行網址取得利率 VBA網路爬蟲 第7張

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

Excel VBA網路爬蟲,InputBox函數開啟對話方塊,輸入中央銀行網址取得利率 VBA網路爬蟲 第8張

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

本文內容取自《人人做得到的網路資料整理術》,書本仍然是最好的學習方法,今天就買本書吧!

金石堂網路書店網址:

https://www.kingstone.com.tw/basic/2014941521928

本網站所有內容皆受版權保護,网站备案编号:苏ICP备14051307号-1