VBA取得財務報表 - 股票

Dora avatar
By Dora
at 2019-03-30T16:40

Table of Contents


VBA取得財務報表

網誌圖文版:

https://www.b88104069.com/archives/4374

第二篇到目前為止,都是以單一公司進行財務分析,需要取得公司股東會年報和財務報告
,實務上大多會是多家公司同時進行分析,如果是一家一家取得財務資料PDF檔案,顯然
不容易進行。上一節有介紹過用Excel取得財務報表,雖然成功將財報資料下載到Excel工
作表,很方便進一步處理,但每下載一份報表,便需要操作一次,在想要同時分析多家公
司或是多個期間的場合,不是那麼有效率,這一節進一步介紹如何運用VBA程式,達到較
為自動化地取得財務報表。

一、接下來會頻繁用到Excel的VBA功能,已經是Excel程式設計師了,所以第一步是將開
發人員的面板打開。在上方功能區點選最右上角的「檔案」,在跳出來的視窗選擇最左下
角的「選項」,最後在「Excel選項」視窗中,移到「自訂功能區」頁籤,將右邊自訂功
能區的「開發人員」勾選。在這裡,還以點選最右邊的上下按紐、調整眾多指令在上方功
能區的順序。

二、回到Excel上方功能區,多出了一個「開發人員頁籤,選點「程式碼」中的Visual
Basic,當滑鼠游標停留在這個指令的時候,會彈出輔助說明:開啟Visual Basic編輯器
,並且還會提示「Alt+F11」為快速組合鍵。

三、如果讀者是使用本書附帶的Excel檔案,開啟VBA後,會看到如下的畫面︳這便是
Excel編寫VBA程式碼的界面,在程式模組中的「Module 1」,已經寫好了一個「
BalanceSheet」的巨集程式。

四、回到Excel操作界面,在上方功能區移到「開發人員」頁籤,於「程式碼」群組中選
擇「巨集」,一樣會彈出輔助說明:「查看可使用巨集的清單,一樣有提示「Alt+F8」為
快速組合鍵。

五、點開「檢視巨集」後,跳出「巨集」視窗,初看有很多巨集程式可供選擇。

將下面有個「巨集存放在」的選單下拉,發現其實還有一個「PERSONAL.XLSB」,這個是
Excel內置的一個隱藏工作表,只要開啓任何一個Excel檔案,就會連帶隱藏開啟這個檔案
,可想見例如將A巨集放在此個人活頁簿,效果等同於在所有Excel檔案都能執行這個A巨
集。

在此用不到「PERSONAL.XLSB」,直接下拉改選為「現用活頁簿」即可,表示只需要列出
目前活頁簿所具有的巨集清單。另外,讀者如果沒有在使用「PERSONAL.XLSB」,開啓書
本範例檔案應該也只看到「BalanceSheet」,這裡因為剛好筆者有這些東西,順便作個分
享。

改為「現用活頁簿」之後,清爽了許多,按右上角的「執行」,讓Excel開始跑第三步驟
所看到的那些程式。

六、刷刷刷,稍加等待,Excel果然一口氣了五個年度的資產負債表,很多資料,這裡礙
於篇幅僅能截圖其中一部份。年度從左到右是2013年到2017年,不過把坐標往右邊拉,會
看到有個2012年1月1日,通常財報是兩個比較年度,2013年較為特別有三個年度,我的程
式設定每個年度財報佔三欄:會計欄位、本年度金額、上年度金額,每次VBA取得資料會
以插入方式新增欄位,所以第一次資料中的2012年,於是被擠到最後面去,由於不致於影
響財務比率分析,不另外作程式調整。

七、將這一節的VBA程式碼列示如下,依照列號作說明。

10:開始一個取名為「BalanceSheet」的巨集程序程式。

30:定義Year為整數變數,定義WebAddress, DesCell為文字變數。

50:先將工作表所有儲存格清除。

70:以變數Year設置2013到2017的迴圈事件,這個省略「Step 1」,因為迴圈預設是正一
的等差級數,亦即整數的流水號。

80-90:依照公開資訊觀測站的年度財務報書網址,設定WebAddress的值,其中的「Year
」依照迴圈進行的話,剛好會是股票代碼2409的2013到2017五個年度的第四季財務報告書


100:設定DesCell變數為所取得財報資料要開始貼上的儲存格坐標位址,其中的「*3」形
成公差為3的等差級數,用意便是上個步驟所說的每個年度財報佔三個欄位,依序往右邊
接續。

110:VBA取得網路資料的固定程式,其「Connection」為網址參數,「Destination」為
目的儲存格位址參數。

120:設定取得網頁資料的特定表格。

130:設定取得網頁上的第2個表格。

140:設定不在背景執行,也是要等到完整資料後再執行下一行程式,因為Excel並非專門
取得網頁資料的應用軟體,而且網頁太多的話Excel可能會不穩定,所以都會把這個設定
為False。

150:結束With,這一行和110行形成一個VBA的With…End With事件,作用是方便針對同
一物件設置許多參數,毋須在每一行程式再一次重申所關聯的對象物件。

160:這一行和70行成一個VBA的迴圈事件。一開始70行的Year是2013,執行到160行再跳
回到70行,Year變成是下一個2014,往下再一次執行程式到160行,直到Year是2017將整
個等差迴圈執行完了,才會從160行往下跳到170行。

180:取得所有資料後,將工作表所有欄寛都設定為15,方便閱讀。

200:結束此巨集程式。

筆者上一本書為《人人做得到的網路資料整理術》,全書以八章四十個小節,介紹Excel
VBA如何取得網路資料,作為範例的網站類型有藝文展覽、天氣預報、借閱排行、銀行匯
率等,其中有個類型便是公開資訊觀測站的財務報表,這一節的VBA程式碼便是引用自上
一本書。

當時那本書《人人做得到的網路資料整理術》側重於Excel VBA的技術基礎,這本書主題
是財報分析,僅僅利用Excel VBA作為工具取得原始財報,所以在接下來章節有用到VBA的
地方,還是會稍加說明,但在技術層面不會像上一本書那麼詳盡,讀者有需要可以使用本
書附帶的Excel檔案,直接執行巨集程式即可。

不過如同這一節提到的2013年較為特殊有三個年度,網頁資料難免結構可能有變動,甚至
網址規則都有可能更改。建議讀者真的很需要常常取得財務報表進行分析,建議可閱讀《
人人做得到的網路資料整理術》,完整學習如何編寫VBA程式取得網路資料。


延伸閱讀:

償債能力分析:流動比率

https://www.b88104069.com/archives/4372

Excel如何取得XBRL網頁資料

https://www.b88104069.com/archives/4368

Excel如何取得財報

https://www.b88104069.com/archives/4365

--


周末,我們繼續Excel:精華區=>21.心得=>5.其他=>3.office

會計人的Excel小教室: https://www.facebook.com/acctexcel


--
Tags: 股票

All Comments

Mia avatar
By Mia
at 2019-04-03T06:08
推,感謝分享
Caroline avatar
By Caroline
at 2019-04-05T20:00
Gary avatar
By Gary
at 2019-04-08T08:40
Todd Johnson avatar
By Todd Johnson
at 2019-04-10T20:59
Aaliyah avatar
By Aaliyah
at 2019-04-13T18:15
Eartha avatar
By Eartha
at 2019-04-15T14:48
推~
Jack avatar
By Jack
at 2019-04-15T16:42
Skylar Davis avatar
By Skylar Davis
at 2019-04-20T02:37
感謝分享
Daph Bay avatar
By Daph Bay
at 2019-04-20T11:10
Poppy avatar
By Poppy
at 2019-04-24T08:45
Tom avatar
By Tom
at 2019-04-29T07:38
謝謝
Dora avatar
By Dora
at 2019-05-02T09:29
感謝分享
Sierra Rose avatar
By Sierra Rose
at 2019-05-03T01:32
謝謝分享
Andy avatar
By Andy
at 2019-05-03T06:44
Thank you!!
Freda avatar
By Freda
at 2019-05-03T19:22
感謝分享
Hazel avatar
By Hazel
at 2019-05-08T13:56
謝分享
Joseph avatar
By Joseph
at 2019-05-08T15:52
Necoo avatar
By Necoo
at 2019-05-11T07:30
推啊
Tracy avatar
By Tracy
at 2019-05-13T01:22
Joe avatar
By Joe
at 2019-05-13T15:14
google sheet 能套VBA嗎?
Catherine avatar
By Catherine
at 2019-05-14T00:29
Google Sheet沒接觸過,以後可能會研究看看,謝謝!
Hedy avatar
By Hedy
at 2019-05-16T14:28
感謝分享
Necoo avatar
By Necoo
at 2019-05-20T21:38
路過幫推
Odelette avatar
By Odelette
at 2019-05-24T02:49

2019年度配股配息殖利率排行表更新(3/30)

Madame avatar
By Madame
at 2019-03-30T15:52
2019年已公告配發 現金股利 與 股票股利 上市櫃公司殖利率排行表 代號 名稱 成交價 現金 股票 總股利 殖利率 備註 2442 新美齊 12.3 0.5 1 1.5 12.2 5525 順天 27.45 2 ...

蘋果宣布:AirPower「計畫已死」取消上市

Jack avatar
By Jack
at 2019-03-30T15:46
1.原文連結:https://udn.com/news/story/7087/3727672 2.原文內容: 震撼!蘋果宣布:AirPower無線充電器「計畫已死」取消上市 2019-03-30 10:26聯合新聞 ...

iPhone處理器開發主管驚傳離職 A7到A12X

Faithe avatar
By Faithe
at 2019-03-30T15:31
1.原文連結: https://tw.finance.appledaily.com/realtime/20190330/1542505/ 2.原文內容: 美國蘋果公司(Apple)正擴大掌控自家晶片設計,如今卻傳出主導iPhone、iPad處理器 設計的首席架構師離職。 美國科技媒體Cnet引述知情人士消 ...

亞信3169

Caitlin avatar
By Caitlin
at 2019-03-30T14:57
1. 標的:亞信3169 2. 分類:多 3. 分析/正文: 基本面: 2018EPS2.25元,毛利率、營益率自去年Q1開始逐季成長,2019年1-2月營收較去年同期 增加29%,負債比率11.53%,公司無銀行借款,財務品質良好。 籌碼面: 2019年2月內部人佔股份總額14.66%,法人本 ...

看好美國經濟 Fed副主席:未來可能有必要

Hardy avatar
By Hardy
at 2019-03-30T13:30
1.原文連結: https://news.cnyes.com/news/id/4295976 2.原文內容: 看好美國經濟 Fed副主席:未來可能有必要進一步升息 有鑑於勞動力市場依然強勁、生產力提高、通膨受到抑制,聯準會 (Fed) 副主席 Randal Quarles 對美國經濟表示信心。週五 ( ...