[心得] VBA如何修改网址下载财务报表

楼主: moodyblue   2016-12-19 20:44:29
VBA如何修改网址下载财务报表
网志图文版:
http://www.b88104069.com/archives/4144
可以这么理解全球资讯网,各国各地有数不清的服务器,每台服务器有许多
网页,千千万万网页用同一套标准格式编辑,每页标上门牌号码(网址),
浏览器搜寻到网址,超连结传送请求给某服务器,服务器接受请求,如果网
路通道顺畅,立即回传网页资料,个人电脑的浏览器经过解析,呈现图文网
页在萤幕上。这其中,网址如同浩翰图书馆里的编号和页码,如果想要捞取
互联网里的数据,必须先解析数据库网址。以下,就公开资讯观测站的公
告财务报表为例,分享Excel的VBA于其中妙用:
一、公开资讯观测站IFRS单一公司案例文件预览及下载,3323的105年第1季
IFRS 合并财务报表预览,“
http://mops.twse.com.tw/server-java/t164sb01?step=1&CO_ID=3323&SYE
AR=2016&SSEASON=1&REPORT_ID=C”。
二、“录制宏”:“您执行的所有命令将储存至宏,您可以再次播放巨
集。”简单理解,就是Excel把操作以程式形式记录起来。关于宏,如果有
兴趣,可以参考《会计人的Excel小教室》第一章第四节。
三、取得网页资料,先前有介绍过作法。
四、下载完后,“停止录制”,注意到这里是“105年第一季”。接着在此“
开发人员”功能页签中,点击“Visual Basic”。
五、进入VBA编辑器,双击“Module1”,这么一大段天书,便是刚才所录制
的Excel操作,下面参数部份也许看不懂,但是开头的地方该能看得懂:
With ActiveSheet.QueryTables.Add(Connection:=
"URL;http://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”。
七、再次执行宏,成功下载第二季的财务报告。
很多道理一贯相通。透过网址取得网页资料,在这篇文章是修改VBA程式,以
先前文章介绍过的Excel指令来说,是修改视窗字段中的网址,能够达到相同
效果。更进一步说,平常浏览器阅读网页,也可以直接在网址列把“1”改成
“2”。重点是,这些以期间资料为主的网站,其网址有一定规则可循,像这
篇文章的“公开资讯观测站IFRS单一公司案例文件”,网址一长串,至少有
三个地方很明显:股票代码、年度、季度,掌握这些规律,是批次取得大数
据的关键,其中涉及到的技术较为复杂,留待日后一一介绍。
延伸阅读:
VBA如何检查应付帐款负数
http://www.b88104069.com/archives/4126
VBA如何计算健保应负担金额
http://www.b88104069.com/archives/4136
VBA如何自定义健保级距的计算函数
http://www.b88104069.com/archives/4140

Links booklink

Contact Us: admin [ a t ] ucptt.com