網頁

2025年9月16日 星期二

【Excel VBA 教學】一鍵下載台灣證券交易所每日收盤行情,省時又方便!

 在進行股票分析時,取得每日的收盤行情資料是不可或缺的第一步。雖然台灣證券交易所(TWSE)的網站提供了完整的資料,但手動下載、儲存、再匯入 Excel 的過程相當繁瑣。

今天,我們要介紹一個由「彰化一整天的 blog」所製作的 Excel 小工具,它利用 VBA 爬蟲技術,讓您只需要在 Excel 中按下一個按鈕,就能輕鬆獲取指定日期的台股每日收盤行情,直接呈現在工作表中,大幅提升資料收集的效率!

功能亮點

  • 一鍵下載:直接在 Excel 內完成資料抓取,無需開啟瀏覽器手動操作。

  • 自訂日期:可手動輸入任何過去的交易日期,抓取歷史資料。

  • 自動抓取最新日期:若不輸入日期,程式會自動判斷並抓取最新的收盤資料。

  • 分類篩選:可依據「大盤統計」、「全部上市股票」、「電機機械」等不同分類下載特定範圍的資料。

使用教學

步驟一:下載並開啟工具

首先,請下載本次教學使用的 Excel 檔案。

下載後請開啟檔案。由於檔案包含 VBA 巨集,Excel 會出現安全性警告,請點選「啟用編輯」及「啟用內容」,以確保所有功能可以正常運作。

步驟二:操作介面說明

開啟後,您會看到一個簡單明瞭的操作介面(位於 主畫面 工作表):

  1. 查詢日期 (B2儲存格)

    • 自動模式:將此欄位留白,程式會自動抓取當天(若已收盤)或前一個交易日的資料。

    • 手動模式:在此輸入您想查詢的特定日期,例如 2019/1/15

  2. 分類項目 (B3儲存格)

    • 點擊此儲存格旁的下拉選單,可以選擇您想下載的資料類別,例如「全部」、「大盤統計資訊」或是特定的產業類別。

  3. 下載按鈕

    • 設定好日期與分類後,點擊「下載」按鈕,程式便會開始執行。

步驟三:開始下載資料

讓我們來實際操作一次。假設我們要下載 2019年01月15日 的 全部 上市公司行情:

  1. 在 B2 儲存格輸入 2019/1/15

  2. 在 B3 儲存格選擇「全部」。

  3. 點擊「下載」按鈕。

程式會開始連線到證交所網站抓取資料,幾秒鐘後會彈出「讀取完成」的提示。

完成後,切換到「結果」工作表,您會看到 2019年01月15日 的完整收盤資料已經整齊地排列好了!

原理說明

這個工具是如何實現的呢?其實原理相當簡單。

  1. 分析目標網址
    我們首先到台灣證券交易所的「每日收盤行情」頁面。透過在「列印/HTML」按鈕上點擊右鍵並複製連結,可以得到資料的實際來源網址,其結構如下:

    Code
    http://www.twse.com.tw/exchangeReport/MI_INDEX?response=html&date=20190116&type=MS

    我們可以發現,只要改變 date= 後面的日期(格式為 YYYYMMDD)和 type= 後面的分類代碼,就能取得不同條件下的資料。

  2. VBA 程式碼實現
    這個 Excel 工具的核心是一段 VBA 程式碼。當您點擊「下載」按鈕時,它會:

    • 讀取您在 主畫面 設定的日期和分類。

    • 將日期轉換成 YYYYMMDD 格式,並找出分類對應的代碼(例如「大盤統計資訊」對應 MS,「全部」對應 ALL)。

    • 將這些參數組合成一個完整的目標網址。

    • 利用 Excel 內建的 QueryTables (Web 查詢) 功能,直接連線到該網址,並將網頁上的表格資料匯入到「結果」工作表中。

這個方法省去了手動複製貼上的麻煩,實現了真正的自動化資料獲取。

結語

透過這個簡單的 Excel VBA 工具,您可以輕鬆建立自己的股市資料庫,無論是日常看盤還是進行長期數據分析都非常實用。這也展示了 Excel 結合 VBA 的強大潛力,能將重複性的網路資料抓取工作變得輕鬆寫意。不妨動手試試看吧!



沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。