将EXE文件嵌入Excel文件中

时间:2011-11-28 12:50:56

标签: windows vba excel-vba excel-2003 excel

我用:

retVal = Shell("program.EXE " & filename, vbNormalFocus)

执行excel电子表格的程序需求。

是否可以将EXE文件嵌入excel文件中?

然后我将如何执行呢?

Ideias:

1 - 某种 bin2str 函数将二进制转换为字符串(因此我可以将它作为变量存储在程序中,并且 str2bin (对位)< / p>

2 - 我读过一些关于 OLE控件的内容(你可以将它嵌入那里),但我真的不知道从哪里开始

2 个答案:

答案 0 :(得分:9)

这是一个避免OLE的大纲解决方案:

  1. 创建隐藏的工作表。
  2. 使用base 64编码将exe转换为文本。
  3. 将该文本存储在隐藏工作表的工作表单元格中。由于单元格中的字符数有限制(32,767),因此需要将字符串分成块。
  4. 显然,当你想保存并执行exe文件时,你需要反转这个过程。

答案 1 :(得分:3)

您可以使用以下方法执行此操作:插入&gt;选择对象,然后选择“从文件创建”。

使用VBA将其添加到工作表中:

Dim o As OLEObject
Set o = ActiveSheet.OLEObjects.Add(Filename:="C:\program.exe")

然后这是执行program.exe的命令:

o.Verb Verb:=xlPrimary

不确定如何将参数传递给它(例如你的filename)。

注意:不受信任的应用程序在您运行它们时会发出警告。