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" 将是最佳选择。
上一篇: 用VB函数轻松访问系统注册表
下一篇: 在Visual Basic中使用Rundll32.exe和Rundll.exe
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




