加速Visual Basic For Application(VBA)(转)

如今的CPU的发展是越来越快,从386、486到今天的Pentium、Pentium Ⅱ,发展速度可谓快矣。然而,在CPU高速发展的同时,应用软件的“体重”也随之猛涨,从我学 电脑时的几K、几十K ,到今天的几十兆、几百兆,这变化连我自己都感到吃惊。CPU的进步,使人们工作更加快速,效率大增,同时也养成了人们“不求简”的不良习惯。笔者曾见过一位朋友正在编写一段程序,用的是VBA,程序代码如下:
   With ActiveWindow
   If WindowState = wd WindowStateMaximize Then 'this is the first part!
   MsgBox "This is a Maximize Window"
   End If
   If WindowState = wd WindowStateMinimize Then 'this is the second part!
   MsgBox "Here is a Minimize Window"
   End If
   If WindowState = wd WindowStateNormal Then 'this is the third part!
   MsgBox "Now here, is a Normal Window!"
   End If
   End With
   乍看一下,似乎结构还挺漂亮,是个好程序。但细分析一下,你会发现,这段程序是个败笔。因为这三段程序没有实现应该具有的逻辑结构。我将这个意见告诉了这位朋友,他到很能听进话,马上修改了上述程序,具体程序代码如下: With ActiveWindow
   If WindowState = wd WindowStateMaximize Then 'this is the first part!
   MsgBox "This is a Maximize Window"
   ElseIf WindowState = wd WindowStateMinimize Then 'this is the second part!
   MsgBox "Here is a Minimize Window"
   ElseIf WindowState = wd WindowStateNormal Then ' this is the third part!
   MsgBox "Now here, is a Normal Window!"
   End If
   End with
   我的那位朋友写完这段程序后,冲我笑笑,意思说:“怎麽样?”我看了看这段程序,心想:如果 WindowState 不等于 wd WindowStateMaximize的话,则要在判断 WindowState是否等于 wd WindowStateMinimize ,如果还不等于的话呢?则要继续判断是否等于wd WindowStateNormal,这样下来,要闯三个“家门”方可进对,累不累啊?我看着不耐烦了,自己亲自编了一段程序:
   Select Case WindowState
   Case wd WindowStateMaximize 'this is the first part!
   MsgBox "This is a Maximize Window"
   Case wd WindowStateMinimize 'this is the second part!
   MsgBox "Here is a Minimize Window"
   Case wd WindowStateNormal ' this is the third part!
   MsgBox "Now here, is a Normal Window!"
   End Select
   正如你所看到的,这段程序简练、易懂、可读性强,相信会为程序增色不少。而且如果调试起来,你会发现它的其他优点。难怪朋友恍然大悟呢!
   其实,使用哪种判断语句,也是有章可循的。比如:如果有两种可能性,那麽可毫不犹豫地选择If/Elseif;对于两种或两种以上的可能性,最好选择Select Case/End Select。多数情况下,如果只有一种唯一选择性的关系,那麽,"if then/endif" 将是最佳选择。
[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8781179/viewspace-925184/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8781179/viewspace-925184/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值