本帖最後由 人不要妄想當神 於 2012-8-23 18:44 編輯
小弟我前陣子剛開始研究VBA不久, 我研究VBA的動機, 一是為了好玩, 二是有時候雖然忙到天昏地暗,有時卻又比較閒,以為自己會枯坐在那裏等到天荒地老,想說這樣也不是辦法,而且腦袋不使用,說不定會提早老人癡呆, 三是我想試試看能不能利用VBA當工具來縮減收集股市或期貨資料的時間,因為說真的,有在盤後做功課的人,應該都知道盤後資料多且雜,很多時候也因此而放棄收集,寧願閒閒的打屁聊天也不願動手做,而很多資料除非使用付費軟體來幫忙,否則還是得靠自己上網動手去收集,所以才起心動念想要研究,看能不能夠省下一些時間,把省下的時間挪來做分析也好。
我的VBA應該只有幼稚園的幼幼班(還不到小班)的程度, 所以我寫的VBA程式可能會讓很多精通VB程式的大師”驚””呼”連連, 他們”驚”的應該是,看到我這種幼幼班的程度也敢拿出來獻寶所以可能會受到驚嚇, 而”呼”呢?說不定看完之後會想呼我幾巴掌吧,
不過,所謂的一樣米養百樣人, 在社會上有人是不怨天不尤人,凡事正面積極思考,選擇奉獻, 有人卻是整天埋怨這埋怨那,憤世忌俗,怪東怪西,只會製造麻煩卻從不會反省檢討自己, 看這不爽,看那不爽,卻不去想想自己的言行是否會造成別人的困擾? 但是我想不管是論壇或是社會(地獄除外吧), 需要的應該是多一些奉獻的人,而不是腦子裡充滿很多負面思考的人吧, 其實,仔細去想想,這世界會因你奉獻而變的更好,還是會因你抱怨而變好? 心念一轉,就知道自己的怨天尤人有多無聊了。
因為看到版上有些無私奉獻的前輩分享他們的成果, 因此小弟我也想野人獻曝一下, 把幼幼班程度的我剛完成不久利用VBA寫的這個EXCEL檔案獻給正通的同學, 我因為自學不久所以程度很低,只是很簡單的東西, 所以我不設密碼,開放原始碼(只是很簡單的程式), 假如對VBA有興趣而且跟我一樣是幼幼班程度的同學可以自行參閱, 當然要是有大師願意幫忙修改程式讓程式更精簡,那就真的是受用無窮囉。
這個Excel檔的VBA程式是每天盤後去證交所下載當天的上市公司的本益比,殖利率以及股價淨值比這三個盤後資料(只能抓當天的資料,要抓歷史資料的話目前超出我的能力知識範圍), 而依照證交所對於這三個資料的定義可以在資料列的最後面看到, 至於這三個名詞的解釋可以搜尋正通或是google一下, (因為櫃買中心的網頁不太親民,所以目前還無法下載上櫃公司的資料,我還再找方法,若是有好心的大大可以提供方法讓資料更齊全,小弟銘感五內), 下載完之後,我寫了兩個VBA的程式來篩選這些資料, 以下分別說明,
程式一是去抓取證交所的資料,但前提是網路要連線,不然要是網路沒有連線卻能抓到證交所的資料,那除非使用五鬼搬運大法,小弟是散戶不是法師,也沒有養鬼,所以還是循正規的方法比較好,
程式二是利用邏輯的OR,意思就是說,因為有3組不同的資料(本益比,殖利率,以及股價淨值比),所以我寫了一個程式分別去對個別的資料做篩選,而篩選的條件可以自己設定,所以程式會把證交所的原始資料分別跟你設定的default value 比較, 若本益比小於 你設定的值就變黃色, “或” 殖利率大於 你設定的值就變藍色, “或” 股價淨值比大於你設定的下限”且”小於你設定的上限就變綠色(只有股價淨值比有設上下限的區間), 以上三個條件是各自獨立的(就如同是以OR來連接一樣),
程式三是利用邏輯的AND,也就是說,我寫了一個程式會去篩選”同時”符合你所設定的那些條件的個股,再把那些股票陳列到隔壁的工作表以方便參閱, 所以必須要所有條件都符合你的設定,VBA才會把那些資料抓出來放到隔壁去,
以上那些動作, 除了你必須去相對應的儲存格輸入數值(小數點也可以)來滿足自己想要的條件之外, 假如不想改變,那就不必動作,程式會以目前儲存格所顯示的數值(你上次保留下來的設定)去篩選, 所有的動作都只需要用滑鼠去點選按鈕(包括下載當天的盤後資料), 整個過程花的時間不會很長(1分鐘之內,有興趣的可以自己試試看),
另外為了版面乾淨,我又設計了兩個按鈕, 其中一個按鈕是把篩選後的儲存的的顏色恢復正常, 另一個是假如已經看完篩選的資料了之後可以把資料清除的按鈕。 所以總共是兩個工作表&五個按鈕,按鈕上面有標明作用。
只是一個小東西而已(所以不收錢), 認為有幫助的同學可以拿去用, 認為沒幫助的也請不要對我驚呼連連(請看上面關於驚呼連連的註解),
因為我是用excel 2010家用版寫的(副檔名是xlsm), 所以我不清楚假如是使用excel 2003或是2007的同學是否可以使用, 不過因為原始碼沒鎖密碼,所以就算使用的是不同版本, 應該也可以自行在EXCEL的巨集裡面重新編寫吧? 假如連巨集是什麼都不懂的話, 說實在的,以我幼幼班的程度也很難解釋的清楚, 萬一解釋錯了造成誤解或認知錯誤那更麻煩, 所以請跟我一樣上網去搜尋或是買書來看吧,畢竟我也是這樣自學而來的。
假如舊版的excel真的沒辦法開啟的話,是否可以請版上的高手提供解決的方法, 小弟才疏學淺,只會使用現成的版本編寫VBA,對於新舊版本之間的轉換實在是莫宰羊。 假如有高手願提供任何想法,小弟先說聲謝謝囉! 另外,假如使用沒問題的同學是否也可以回報一下呢 ? 這樣子,下次有新的東西,別人應該也比較願意分享吧,謝謝。 (對不起,因為不知如何在版面分段落,因此文字全擠在一起,)
2012年5月 6日 17:28補充
承蒙朋友阿德的幫忙,
他的電腦是使用舊版的excel,
所以重新編寫之後,最下面那個檔案(有註明for舊版),舊版的excel應該可以使用了.
|