• Embed Doc
  • Readcast
  • Collections
 
 1
Excel VBA
作資訊系統開發
 
  程式設計相較於使用套裝軟體而言,是操作資訊時代工具
(
  電腦
)
,最直接、最有彈性、  最有潛力
(
  可以設計出所有軟體
)
   的方式。如前所述,程式是指令的集合,但這些指令必須以特定的語法組合起來,其過程包括:
 1.
 
   解析希望電腦幫我們完成的程序工作,將之標準化、合理化,並分析是否適合電腦來作,  若是,則可以準備將之程式化。
 2.
 
分解該程序工作至逐步程序,此即演算法
(Algorithm)
 3.
 
以程式指令與語法將演算程序轉為程式語法。
 4.
 
  反覆「執行、偵錯」,直到系統執行正確無誤。
 5.
 
  由簡入繁逐步改進程式
(
系統
)
功能
(
此即所謂漸進開發策略
)
 
  靈活運用三種最簡單的程式結構
(
 順序、判斷與重複結構
)
,即可形成所有軟體。以下以一  簡單功能,分別以
BASIC
VB(A)
C
  語言編碼比較,如表
3.2.1
   所示
(
對於
VB
C
   的語法,  後述,讀者在此僅需比較其相似性即可
)
 
3.2.1
  行
 
  號
 BASIC VB(VB; VBA; ASP;VBScript)C(C++; Java; C#)
 順序結構
(
以下說明為
BASIC
  語法之逐行解釋
)1.
 
  由鍵盤取得數值輸入,並存入變數
A
  中
 2.
 
將變數
A
  值取出,加上
1(+1)
,存入變數
A(=A)
  中
 3.
 
  由螢幕印出變數
A
   的值
 123Input AA = A + 1Print AA = InputBox(“Input No#:”)A = A + 1MsgBox(A)#include <iostream.h>void main(){float A;cin>>A;A = A + 1;cout<<A;}
判斷結構
(
以下說明為
BASIC
  語法之逐行解釋
)1.
 
  由鍵盤取得數值輸入,並存入變數
A
  中
 2.
 
判斷變數
A
   的內含值是否大於獲等於
0(>=0)
,若「是」則執行
Then
  後的指令
(
  即
Print A)
  否則執行
Else
 之後的指令
(
  即
Print -1*A)3.
 
 不管第
2
  行程式之執行結果如何,皆執行第
3
  行的程式
(
  即
Print A+1)123Input AIf A>=0 Then Print A Else Print-1*APrint A+1A = InputBox(“Input No#:”)If A>=0 ThenMsgBox(A)Else#include <iostream.h>void main(){float A;cin>>A;
 
 2
MsgBox(-1*A)End If MsgBox(A+1)if (A >= 0) {cout<<A}else { cout<<-1*A }cout<<A+1;}
  重複
(+
判斷
)
 結構
(
以下說明為
BASIC
  語法之逐行解釋
)1.
 
For … Next
 指令重複執行第
2
  行至第
3
  行間的指令,共
5
次,第
1
次執行時變數
I
 為
1(
  即下限值
)
,第
2
次執行時變數
I
 為
2
,第
5
次執行時變數
I
 為
5
,即每重複執行
1
次,計數變數
I
 加
1
。當計算變數值增加到上限值
(5)
   時,即結束,並接續至
Next I
  後的 指令執行
 2.
 
  由鍵盤取得數值輸入,並存入變數
A
  中
 3.
 
判斷變數
A
   的內含值是否大於獲等於
0(>=0)
,若「是」則執行
Then
  後的指令
(
  即
Print A)4.
 
 為重複結構的終點
 1234For I = 1 To 5Input AIf A>=0 Then Print ANext IFor I = 1 To 5A = InputBox(“Input No#:”)If A>=0 Then MsgBox(A)Next I#include <iostream.h>void main(){float A; int Icout<<”Input No#:”;cin>>A;for (I = 1; I <= 5; I++){if (A >= 0){cout<<A}}}
經過以上的學習,讀者大概已經了解程式語言的基本結構與原理,但為了能確實完成「編  」與「」的
(
而非紙上談兵
)
,我們選擇
VBA
  說明,
VBA
  屬於視窗環境的  程式語言,輸入與輸出分別必須代以
InputBox
 指令取得鍵盤輸入,
MsgBox
 指令產生螢幕輸出。
 
上表中「
A = InputBox(“Input No#:”)
」之指令係以
”Input No#:”
 為提示文字,由輸入框取  得輸入
(
   輸入後按「確定」鍵
)
,並存入變數
A
  
A=A+1
」則與
Basic
  語言相同,第
3
  行
MsgBox(A)
」則將變數
A
   的內含值以訊息視窗產生輸出。實作步驟如下:
 1.
 
 進入
Excel
 2.
 
以功能表之「工具
  巨集
Visual BASIC
 編輯器」或快速鍵「
Alt+F11
VBA
 編輯環 境。
(
 如圖
3.2.1)3.
 
以功能表之「插入
 模組」開啟程式編輯視窗,開啟後如圖
3.2.2
   所示。
 4.
 
 在圖
3.2.2
Book1 – Module(
  程式碼
)
」視窗中編輯程式碼,程式碼必須包含在「
Sub … EndSub
」間,且給予該程序名稱
(
  例如圖
3.2.3
 之
Test)
,編輯完後如圖
3.2.3
   所示。
 
 
 3
 
   圖
3.2.1
   圖
3.2.2
   圖
3.2.35.
 
 編輯完程式碼後,以功能表之「執行
 執行
Sub
  或
UserForm
」或快速鍵「
F5
(
  記得滑鼠 指標要停留在「
Sub…End Sub
」間
)
,執行該程序。
 6.
 
 執行後出現如圖
3.2.4
 之輸入視窗
(
此為執行「
A = InputBox(“Input No#:”)
」出現之畫面
)
 在輸入框中輸入一值
(
  例如
5)
,按圖
3.2.4
 之「確定」鍵,即可將該值輸入至變數
A
  中
(
  即
A=5)
 
   圖
3.2.47.
 
   隨即,可出現如圖
3.2.5
 之結果,即經
A=A+1
  後,變數
A
 為
6
 之結果。按「確定」鍵即  可結束程式執行。
 
of 00

Commenting has been disabled.