2013年1月30日 星期三

EXCEL VBA 1-1 第1個簡單小程式(續)

還記得要如何進入VBA的開發環境嗎?
嗯,很好,沒有忘記的話,那我們繼續解說我們的第1隻簡單的小程式
這隻程式的功能是:
將2,4,......,20等,10個數字,填入到A1到A10
它的原始碼

Sub printl()
    Dim i, j, k As Integer
       j = 2
           For i = 1 To 10
                 k = k + j
                 Cells(i, 1).Value = k
           Next
End Sub

這個原始碼我們要怎麼看呢?
咱一小段一小段的講

1.首先是巨集的宣告,看紅色的字

Sub printl()
    Dim i, j, k As Integer
       j = 2
           For i = 1 To 10
                 k = k + j
                 Cells(i, 1).Value = k
           Next
End Sub

這是宣告一個Sub,這裡的用法指的是巨集,巨集的名稱是printl
Sub是關鍵字不能亂改
printl是巨集的變數名稱,可以改,變數名稱不可以是關鍵字。

2.再來是巨集的內容,變數的初始宣告,看紅色的字

Sub printl()
    Dim i, j, k As Integer
       j = 2
           For i = 1 To 10
                 k = k + j
                 Cells(i, 1).Value = k
           Next
End Sub
關於Dim i,j,k As Integer  j=2
是程式會用得到的變數,就是宣告 i,j,k是整數(初始值都是0)
j=2就是把2這個值指給j

3.FOR迴圈的使用,以及敘述裡的事情
FOR迴圈的公式
For 數值變數 = 初始值 To 終止值
    敘述
Next [數值變數]
套到我們的程式裡

           For i = 1 To 10
                 k = k + j
                 Cells(i, 1).Value = k
           Next
意思是要把

  k = k + j
  Cells(i, 1).Value = k


這件事做10次,我們一次一次來解釋吧!!
第1次,當i=1時,
 k = k + j
因為k一開始是0,j=2,所以程式的執行過程是把0+2,也就是2的值指定給k,記作k=2
然後
Cells(i, 1).Value = k
這裡的i=1,k=2
所以程式的執行過程是
Cells(1, 1).Value = 2
把2指定給Cells(1, 1).Value就是A1儲存格
NEXT則代表程式要繼續執行i=2,也就是進入第2個迴圈的啦

這樣是不是很清楚的呢?
嗯,現在試看看做一個程式!!






提示:要用2個FOR迴圈哦!!解答在本頁的某處。
















解答:

Sub printl()
Dim i, j, k, m As Integer
j = 2
For i = 1 To 10
k = k + j
Cells(i, 1).Value = k
Cells(1, i).Value = k
For m = 2 To 10
Cells(m, i).Value = k
Cells(i, m).Value = k
Next
Next
End Sub

生活小札:
唉,其實在公家單位工作,真的不像外界想像的好過啦,所以泥砍砍,為什麼每年都會缺那麼多人,奇怪的叮,又有很多人想進到公家單位的。到公家單位然後頂到爛缺,那真的是有苦說不出的,然後泥以為想調單位就可以隨便換的嗎?那得要對方要用泥,然後泥的長官肯給泥走,2個條件都成立,泥才有辦法滾蛋的。這太黑暗了,泥想想,如果泥在機關做的不好,那別的單位在找人的時候會打聽不出來嗎?這種情況底下,泥會不太好找到要泥的單位。所以在原單位就不能表現的太爛,好吧,那假設泥每天都好認真工作,但又覺得原單位工作壓力太大,想烙跑,好不容易泥到處找缺,對方要泥,這時泥一定要趕快跟原單位長官報告說泥想烙跑了,沒有先講,長官會覺得泥狠沒李帽,肯定不會放人,要不就是拖到泥很難走,讓新單位覺得泥狠難用,所以一定要先講,但泥知道,對方願意用泥,就是知道泥在原單位表現的還不錯,才願意用,所以很可怕的是原單位的長官也會因為泥表現不錯而不願意放人,很矯情吧。話說回來,每年還是有一堆公務人員調來調去的,要不就一條鞭的,要不就是有拔酷的,那種乖乖的公務人員,想調動,要運氣很好,很好的那種,就是剛好泥的長官也要調動,同時泥也找到缺,大頭們也都覺得沒關係,等等一堆的天時地利人和的,知道了吧,聽說很多調來調去的公務人員都覺得,第1份公職是最好的,而且每況遇下,所以想調動,還是要三思呀。

2013年1月28日 星期一

EXCEL VBA 1 前言、編輯VBA及第1個簡單小程式

CH1
一、前言:
電腦不能不灌OFFICE,灌OFFICE就不能不灌EXCEL呀!!
自從開始玩股票以後,我發現,其實玩股票從下單的策略、股票紀錄、上市公司財務報表的分析等,用EXCEL真的很好用。本身就做了好幾個網路上抓不到的EXCEL,而且搭配下單軟體的EXCEL檔,維護起來很輕鬆,隨時知道自己買的股票成本是多少、損益有多少、張數有多少等。好處真是不少呀!!不過,想知道自己的策略投報率是高還是低,目前我是用EXCEL搭配VBA以減少人工作業的時間,雖然網路上有人使用MULTICHART(不知有沒有拼錯的),但感覺上難度頗高,雖然學一下也不會太久,但我總是覺得,或許裡面某些我要的功能,程式跑不出來,得要自己寫。所以我還是選擇用EXCEL+VBA來測試自己的策略,好處是什麼策略,只要想得出來,大多可以用程式測試,壞處是有時程式寫不出來會花很多時間,而且可能程式寫錯,造成策略損益失真,唉唉唉。真是一言難盡的。因為本身我不是一個很專業的程式設計師,但很奇怪,我想要的功能,都可以寫的出來@@......不是的啦,也不是都可以完完全全的寫出來,就因為不是很專業,也不是能完完全全寫的出來,所以要把自己摸索出來的東西做一個紀錄,以免老了忘光光。所以呀,我的紀錄(教學文件)裡,可能會出現很不專業的詞彙出來,但我都會盡量用圖來表達的啦。所以如果有看不懂的地方,偶們是可以一起來研究一下的。
先談談我的開發環境吧!!
OS:WIN7、WIN XP SP3
OFFICE:MS OFFICE2007
下單軟體:玉山證券跑DDE用

今天就不再偏離主題太遠了,先把EXCEL開出來吧,找看看有沒有開發人員的工具列。好吧,它的開啟畫面解說如下:
首先點圓圓的那個=.=
就會看到EXCEL選項。




















然後就會看到開啟開發人員標籤
在方格打勾,就可以看得到開啟VBA開發環境的標籤。
















然後,就照著圖上紅框去點,就可以開啟開發環境了。



















好不容易進入了EXCEL VBA的開發環境,接下來要開始編寫第1支程式了
好興奮的,直接打入下面的程式碼吧!!

Sub printl()
Dim i, j, k As Integer
j = 2
For i = 1 To 10
k = k + j
Cells(i, 1).Value = k
Next
End Sub








打完了以後新增一個按鈕,命名為按鈕1
新增完以後,在按鈕1上點右鍵,指定巨集為 printl















然後點一下按鈕1,泥會發現,嘿嘿,很炫的事情發生了。它是怎麼發生的呢?
咱家累了,要工作了,下次再來告訴大家這個程式是怎麼一回事吧。


生活小札:
今天知道一件事,就是朋友有交一個日本的女朋友,這個星期天,那個日本馬就要我朋友從台南坐車到台北找她,然後她跟我朋友說,我們分手吧!!因為我找了個更有錢的男人,是韓國人來著。唉.......真是個現實的世界丫。

2013年1月25日 星期五

這裡就要作一些BLOGGER如何建置的事
關於一些規劃、內容、行銷、營運的事務。

想法:
1.用EXCEL做一個試算表= =,

  • 就是要做一個結合DDE的模擬下單系統。
  • 要有記帳功能。
  • 設定一開始可用資金。
  • 買了什麼股票,賣了什麼股票,損益是多少。
呃!印象中,好像有個網站就有出虛擬的交易環境@@!只是那時覺得,實際現股小於虛擬現股時,系統要如何模擬因而作罷,唉,咱真是一位容易放棄的人呀!!