使用VBA删除Powerpoint中的加载项

时间:2014-09-30 13:34:55

标签: vba powerpoint powerpoint-vba office-addins

我在PowerPoint中有一个VBA加载项,偶尔会更新。我在VBA中编写了一个代码,每周一都会检查一个新版本的加载项是否存在。如果是这样,PowerPoint会自动更新加载项。到目前为止,我已经完成了这项工作:

  • 停用PowerPoint中的旧加载项
  • 删除Microsoft的加载项文件夹中的旧加载项
  • 将新的加载项复制到Microsoft的加载项文件夹
  • 在PowerPoint中激活新的加载项

但是,我似乎无法找到正确的命令来删除PowerPoint中的旧加载项。旧的加载项仍在PowerPoint的可用加载项中,PowerPoint也会在非活动的应用程序加载项下列出它。

此处代码的一部分首先停用加载项,然后尝试将其从PowerPoint中删除。

Dim oAddin As AddIn
For Each oAddin In Application.AddIns
   If Left(oAddin.name, 16) = "PPT ACO Add-in V" Then
       oAddin.Loaded = msoFalse
       Kill (oAddin) '<-- these is the line of Code that doesn't execute
   End if
Next oAddin

该程序可以运行,但过了一段时间我会在PowerPoint中放置一堆非活动的加载项,这对用户来说会非常混乱。

非常感谢你的帮助。

托米

1 个答案:

答案 0 :(得分:2)

答案很晚,但是自从我过去了,我在这个问题上花了很长时间,而不是

kill (oAddin)

你需要

kill oAddin.fullname

虽然你也应该从AddIns集合中删除addin,也可以取消注册。

此外,在2010版中,当您尝试删除文件时,可能会收到权限被拒绝的错误。这是由于ppt没有及时释放打开的插件文件引起的。事实上,计时器并没有解决它。但是第二次杀戮实际上会起作用。