动态导入或添加代码到加载项

时间:2016-06-30 23:30:56

标签: vba excel-vba powerpoint excel

我正在开发一个我创建了PowerPoint插件的项目。这个概念只包含一个带有列表框的用户表单。根据用户选择,将添加其他模块(bas文件)或将其导入演示文稿,代码将被执行。

我不想在添加中包含所有模块,这取决于我可以进行修改的要求,然后可以存储在共享文件夹中。因此,每次用户使用插件时,他们都可以拥有更新版本。因此,我不必每次更改都要重新传播插件。

我有一个空白模块,我从文本文件中导入代码(bas文件中的代码保存为文本)然后运行。

我可以导入bas文件,也可以使用inserFrom文件选项我可以从文本文件中导入代码,但问题是它总是被添加到当前的演示文稿代码窗口。但我想将代码添加到插件代码窗格中。

我在addin中有一个名为“tempCode”的空白模块,我想更新导入的代码,但我无法这样做。

当我将插件编辑为ppt时,它工作正常,但是当我将ppt转换为插件时,概念无效。

任何想法如何将代码添加到插件代码窗格而不是添加到活动ppt。

代码详情:

我有一个用户表单,带有一个列表框。 它有3个项目。 选项1 选项2 选项3 如果用户选择任何选项,让我们说选项2,选项2的代码将从文本文件导入工作模块。

一个命令按钮,用于运行所选的。

工作模块的名称是“Mod_Working” 文本文件名是“C:\ Code \ Option2.txt”

以下是我正在使用的代码:

Sub ImportSelected()
With ActivePresentation.VBProject.VBComponents(“Mod_Working”).CodeModule
    .DeleteLines 1, .CountOfLines 'it deletes any existing code
    .AddFromFile “C:\Code\Option2.txt”
End With
End Sub

Code in text file:
Sub Test
 Msgbox “You selected Opt 2”
End sub

Code of Command Button:
Private Sub Cmd_run_Click()
   Application.Run “Mod_Working.Test”
End Sub

这适用于ppt模式,但转换为插件时无法使用。

1 个答案:

答案 0 :(得分:0)

为什么不这样做: - 在共享文件夹中,将加载项文件标记为只读(右键单击,属性)。这可以防止文件在人们使用加载项时正在使用(至少它在Excel中以这种方式工作) - 更新后,只需替换加载项并将其再次设置为只读即可。

或者,请查看:www.jkp-ads.com/articles/updateanaddin.asp