?? 38.txt
字號:
加速Visual Basic For Application(VBA)
如今的CPU的發展是越來越快,從386、486到今天的Pentium、Pentium Ⅱ,發展速度可謂快矣。然而,在CPU高速發展的同時,應用軟件的“體重”也隨之猛漲,從我學電腦時的幾K、幾十K ,到今天的幾十兆、幾百兆,這變化連我自己都感到吃驚。CPU的進步,使人們工作更加快速,效率大增,同時也養成了人們“不求簡”的不良習慣。筆者曾見過一位朋友正在編寫一段程序,用的是VBA,程序代碼如下:
With ActiveWindow
If WindowState = wdWindowStateMaximize Then ’this is the first part!
MsgBox "This is a Maximize Window"
End If
If WindowState = wdWindowStateMinimize Then ’this is the second part!
MsgBox "Here is a Minimize Window"
End If
If WindowState = wdWindowStateNormal Then ’this is the third part!
MsgBox "Now here, is a Normal Window!"
End If
End With
乍看一下,似乎結構還挺漂亮,是個好程序。但細分析一下,你會發現,這段程序是個敗筆。因為這三段程序沒有實現應該具有的邏輯結構。我將這個意見告訴了這位朋友,他到很能聽進話,馬上修改了上述程序,具體程序代碼如下: With ActiveWindow
If WindowState = wdWindowStateMaximize Then ’this is the first part!
MsgBox "This is a Maximize Window"
ElseIf WindowState = wdWindowStateMinimize Then ’this is the second part!
MsgBox "Here is a Minimize Window"
ElseIf WindowState = wdWindowStateNormal Then ' this is the third part!
MsgBox "Now here, is a Normal Window!"
End If
End with
我的那位朋友寫完這段程序后,沖我笑笑,意思說:“怎麼樣?”我看了看這段程序,心想:如果WindowState 不等于 wdWindowStateMaximize的話,則要在判斷WindowState是否等于 wdWindowStateMinimize ,如果還不等于的話呢?則要繼續判斷是否等于wdWindowStateNormal,這樣下來,要闖三個“家門”方可進對,累不累啊?我看著不耐煩了,自己親自編了一段程序:
Select Case WindowState
Case wdWindowStateMaximize ’this is the first part!
MsgBox "This is a Maximize Window"
Case wdWindowStateMinimize ’this is the second part!
MsgBox "Here is a Minimize Window"
Case wdWindowStateNormal ' this is the third part!
MsgBox "Now here, is a Normal Window!"
End Select
正如你所看到的,這段程序簡練、易懂、可讀性強,相信會為程序增色不少。而且如果調試起來,你會發現它的其他優點。難怪朋友恍然大悟呢!
其實,使用哪種判斷語句,也是有章可循的。比如:如果有兩種可能性,那麼可毫不猶豫地選擇If/Elseif;對于兩種或兩種以上的可能性,最好選擇Select Case/End Select。多數情況下,如果只有一種唯一選擇性的關系,那麼,"if then/endif" 將是最佳選擇。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -