VBA中如何调用exe程序 如:我要用Excel2007 VBA 编程实现打开Caculator,并输入12+3=15,如何实现

VBA中如何调用exe程序 如:我要用Excel2007 VBA 编程实现打开Caculator,并输入12+3=15,如何实现,第1张

调用外部程序使用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来打开程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9696242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存