我在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中看到一堆不活跃的加载项,这会让用户非常困惑。
非常感谢你们的帮助。
Tommy
答案很晚,但由于我路过,我花了很长时间在这个问题上,而不是
kill (oAddin)
你需要
kill oAddin.fullname
尽管您也应该从AddIns的集合中删除该加载项,并可能注销。
此外,在2010版中,当您尝试删除文件时,可能会出现权限被拒绝的错误。这是由于ppt没有及时释放打开的加载项文件造成的。事实上,计时器并不能解决这个问题。但秒杀确实会起作用。