调用外部程序使用Shell语句,下面的实例是调用CMD命令打开DOS窗口并执行Dir命令,将浏览结果存入文件,然后用open语句打开文件,读入vba,实例中使用的是绝对路径,如果是相对路径用“&”表示盘符,您要调用计算器,并获取计算器的计算结果,仅调用外部程序是不行的,我尝试使用API函数钩子,结果是自己重新写一个计算器都没那么费神
Sub shellcall()
Shell "cmd /c dir c:\>c:\1aaatxt"
Open "c:\11sstxt" For Input As #1
Dim s As String
While Not EOF(1)
Line Input #1, s
DebugPrint s
Wend
Close #1
End Sub
建议你将信息存在文件或注册表中,然后用个循环读取并加载。这样以后也好修改。
帮你修改了下,将路径按以下格式存为txt文件。
冒险岛online
D:\盛大网络\冒险岛online\maplestoryexe
超级玛丽
D:\ZSNESW\运行游戏exe
机械迷城
D:\机械迷城\machinariumexe
植物大战僵尸
D:\Plants vs Zombies\PlantsVsZombiesexe
平衡球
D:\Ballance\Startupexe
粘粘世界
D:\新建文件夹\World of Goo V14\WorldOfGooexe
Private Sub Label1_Click(Index As Integer)
Select Case Index
Case 0
LoadData ("Gamestxt")
Case 1
LoadData ("Toolstxt")
Case 2
End Select
End Sub
Private Sub LoadData(TxtFile As String)
Dim str As String, Data() As String
Dim Names() As String, Paths() As String
Dim i As Long, k As Long
'打开文件,读取内容
Open TxtFile For Binary As #1
str = Input(LOF(1), #1)
Close #1
Data() = Split(str, vbCrLf)
ReDim Names(0 To Int(UBound(Data) / 2))
ReDim Paths(0 To Int(UBound(Data) / 2))
k = 0
For i = 0 To UBound(Data) Step 2
'确保不为空
If Len(Data(i)) <> 0 And Len(Data(i + 1)) <> 0 Then
Names(k) = Data(i)
Paths(k) = Data(i + 1)
'添加图标
Dim a
Picture1Picture = LoadPicture("")
a = ExtractIcon(ApphInstance, Paths(k), 0)
a = DrawIcon(Picture1hdc, 0, 0, a)
ImageList1ListImagesAdd , , Picture1Image
'添加项目,利用key属性储存路径数据
ListView1ListItemsAdd , Paths(k), Names(k), k + 1
k = k + 1
End If
Next i
End Sub
'双击
Private Sub ListView1_DblClick()
'判断是否点击到item
If Not ListView1SelectedItem Is Nothing Then
Shell ListView1SelectedItemKey
End If
End Sub
'为了让Listview在没点到item时失去焦点
'否则点空白时selectitem不为空
Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Not ListView1HitTest(x, y) Is ListView1SelectedItem Then
Set ListView1SelectedItem = Nothing
End If
End Sub
方法:
open 事件
Private Sub Workbook_Open()
End Sub
在VBE窗口中左边的“thisworkbook" ,双击,就出现左边(通用),把它选为workbook,再选OPEN事件
在这个事件中加入代码,就可以了!
也可以用
Sub auto_open()
End Sub
这个放在任何模块都可以。
图二中提示了找不到工程库,说明你的excel应用程序的版本跟vba外挂默认的不一致,可以自己去改一下VBE-》工具-》引用,换一个电脑已安装的Excel版本对应的库文件就行了。
请参考Excel中的Visio
Basic帮助的Shell(pathname[,windowstyle])
函数部分,通过它运行一个外部程序(如AutoCAD,你要用这个程序打开的文件作为参数跟在这个后面)。注意要指明程序的路径和文件名。
以上就是关于VBA中如何调用exe程序 如:我要用Excel2007 VBA 编程实现打开Caculator,并输入12+3=15,如何实现全部的内容,包括:VBA中如何调用exe程序 如:我要用Excel2007 VBA 编程实现打开Caculator,并输入12+3=15,如何实现、VB/VBA使用api实现外部程序listview指定item的双击、如何excel的VBA来打开程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)