Excel錄製巨集取得網頁資料,VBA修改網址程式執行

Excel操作過程可以錄製巨集,不但方便重新執行,更可以進入VBA編輯器瞭解並修改原始程式碼。本文以取得網頁財報為例,介紹如何更改網址再次網路爬蟲。

可以這麼理解全球資訊網,各國各地有數不清的伺服器,每台伺服器有許多網頁,千千萬萬網頁用同一套標準格式編輯,每頁標上門牌號碼(網址),瀏覽器搜尋到網址,超連結傳送請求給某伺服器,伺服器接受請求,如果網路通道順暢,立即回傳網頁資料,個人電腦的瀏覽器經過解析,呈現圖文網頁在螢幕上。這其中,網址如同浩翰圖書館裡的編號和頁碼,如果想要撈取網際網路裡的數據,必須先解析資料庫網址。以下,就公開資訊觀測站的公告財務報表為例,分享Excel的VBA於其中妙用:

一、公開資訊觀測站IFRS單一公司案例文件預覽及下載,3323的105年第1季 IFRS 合併財務報表預覽。

公開資訊觀測站IFRS單一公司案例文件預覽及下載

二、「錄製巨集」:「您執行的所有命令將儲存至巨集,您可以再次播放巨集。」簡單理解,就是Excel把操作以程式形式記錄起來,可以參考《會計人的Excel小教室》第一章第四節。

錄製巨集

三、取得網頁資料,先前有介紹過做法。

取得網頁資料

四、下載完後,「停止錄製」,注意到這裡是「105年第一季」。接著在此「開發人員」功能頁籤中,點擊「Visual Basic」。

停止錄製

五、進入VBA編輯器,雙擊「Module1」,這麼一大段天書,便是剛才所錄製的Excel操作,下面參數部份也許看不懂,但是開頭的地方該能看得懂:

進入VBA編輯器

With ActiveSheet.QueryTables.Add(Connection:= _

“URL;https://mops.twse.com.tw/server-java/t164sb01step=1&CO_ID=3323&SYEAR=2016&SSEASON=1&REPORT_ID=C”, _

Destination:=Range(“$A$1”))

.Name=”t164sb01step=1&CO_ID=3323&SYEAR=2016&SSEASON=1&REPORT_ID=C”

其中「 _」是VBA程式換行碼,考慮文章呈現,部份我作了修改,自己實際試作的讀者,以自己Excel檔案的VBA程式為準。

六、關鍵字既然是「ID=3323&SYEAR=2016&SSEASON=1」,照樣造句,依需要修改,例如:「ID=3323&SYEAR=2016&SSEASON=2」。

ID=3323&SYEAR=2016&SSEASON=1

七、再次執行巨集,成功下載第二季的財務報告。

再次執行巨集

很多道理一貫相通。透過網址取得網頁資料,在這篇文章是修改VBA程式,以先前文章介紹過的Excel指令來說,是修改視窗欄位中的網址,能夠達到相同效果。更進一步說,平常瀏覽器閱讀網頁,也可以直接在網址列把「1」改成「2」。重點是,這些以期間資料為主的網站,其網址有一定規則可循,像這篇文章的「公開資訊觀測站IFRS單一公司案例文件」,網址一長串,至少有三個地方很明顯:股票代碼、年度、季度,掌握這些規律,是批次取得大數據的關鍵,其中涉及到的技術較為複雜,留待日後一一介紹。

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

最新文章: