学VB光看语法容易忘,动手写几个小功能才记得牢。下面三个实例难度递增,代码都是完整可运行的思路,适合边看边在IDE里敲一遍。
实例一:文件批量改名工具
这个例子练的是FileSystemObject和循环的配合。
窗体上放一个TextBox(填目录路径)、一个ListBox(显示文件名)、一个Button(执行改名)。点击按钮后先检查路径是否存在,再遍历目录下的文件,按“前缀+序号+原扩展名”重命名。
Dim fso As New FileSystemObject
Dim f As File, i As Integer
If Not fso.FolderExists(Text1.Text) Then
MsgBox “目录不存在”
Exit Sub
End If
i = 1
For Each f In fso.GetFolder(Text1.Text).Files
f.Name = “new_” & i & “.” & fso.GetExtensionName(f.Name)
i = i + 1
Next
要点有两个:改名之前最好先备份,因为批量操作不可逆;用GetExtensionName取扩展名比手工截取字符串更稳妥。
实例二:带错误处理的简易计算器
这个实例重点不在算术,而在除零判断和输入校验。
界面上两个TextBox输入数字,四个按钮对应加减乘除。核心是每次运算前先验证输入:
On Error GoTo Handler
Dim a As Double, b As Double
a = CDbl(Text1.Text): b = CDbl(Text2.Text)
Select Case op
Case “/”
If b = 0 Then MsgBox “除数不能为零”: Exit Sub
Text3.Text = a / b
End Select
Exit Sub
Handler:
MsgBox “请输入有效数字”
On Error GoTo配合Exit Sub是VB里常见的局部错误处理写法,注意别把它写成全局跳转,否则逻辑会乱。
实例三:文本框内查找替换
练习InStr、Mid和Replace函数,适合做编辑器类小工具。
放置两个输入框(查找内容、替换内容)、一个多行TextBox和一个按钮。实现时可以直接用内置的Replace:
If Text1.Text = “” Then Exit Sub
Text3.Text = Replace(Text3.Text, Text1.Text, Text2.Text)
如果需要高亮或逐个替换,就用InStr定位位置,再用Mid拼接字符串,循环处理。后者代码长一些,但对理解字符串索引很有帮助。
写实例时容易踩的坑
- 控件名称别用默认的
Command1,改成btnRename这类语义化名称,后期维护省事。 - 文件路径要处理末尾反斜杠,推荐用
fso.BuildPath拼接。 - 循环里修改集合会出问题,批量改名时先收集文件名再操作。
- 及时释放对象,
Set fso = Nothing虽然VB6有垃圾回收,但显式释放是好习惯。
把这三个例子跑通,再去读更复杂的项目代码,理解事件驱动和对象调用的速度会明显快很多。