Excel 编辑.ppam文件以自定义外接程序
我收到了一个powerpoint加载项作为.ppam文件,另一个Excel加载项作为.xslm文件。外接程序的工作非常好,但我想用一些内部要求对其进行定制Excel 编辑.ppam文件以自定义外接程序,excel,vba,powerpoint,Excel,Vba,Powerpoint,我收到了一个powerpoint加载项作为.ppam文件,另一个Excel加载项作为.xslm文件。外接程序的工作非常好,但我想用一些内部要求对其进行定制 我的问题是-如何打开.ppam文件(据我所知是编译版本)背后的源代码以执行自定义。如果是ppam文件,则它是在PowerPoint中从另存为加载项的PPTM文件创建的 虽然您可以出于测试目的“就地”编辑加载的加载项,但不能编辑然后保存它们。但您可以导出外接程序的模块,然后将它们导入新的PPTM文件或在两者之间复制/粘贴代码 为了访问加载的加载
我的问题是-如何打开.ppam文件(据我所知是编译版本)背后的源代码以执行自定义。如果是ppam文件,则它是在PowerPoint中从另存为加载项的PPTM文件创建的 虽然您可以出于测试目的“就地”编辑加载的加载项,但不能编辑然后保存它们。但您可以导出外接程序的模块,然后将它们导入新的PPTM文件或在两者之间复制/粘贴代码 为了访问加载的加载项的模块/代码,您需要更改注册表 重要提示:先退出PowerPoint 然后转到:
HKEY\U当前用户\软件\ Microsoft\Office\14.0\PowerPoint\Options
(即2010年PPT;2016/365年PPT和2019年PPT用16.0代替14.0,2013年PPT用15.0,2007年PPT用12.0等等……没有13.0)
添加新的DWORD值:DebugAddins=1
再次启动PPT;现在,加载的加载项将显示在VBA IDE中。如果它们没有密码保护,您将能够打开它们、出于测试目的进行编辑、导出模块或复制/粘贴以在新的PPTM文件中使用
确保导出您经常更改的任何模块;如果退出PPT或它崩溃,您将丢失自上次保存以来所做的任何更改。如果您还想复制/修改自定义功能区
除了Steve Rindsberg的完美解决方案外,您还可以执行以下操作来传输自定义功能区属性:
OLD.ppam
和NEW.pptm
OLD.ppam
和NEW.pptm
NEW.pptm
文件下,单击插入-->Office 2010+自定义UI部件,添加customUI14.xml
条目customUI14.xml
部分的OLD.ppam
复制到NEW.pptm
中OLD.ppam
文件。您将在提取的文件夹OLD/customUI/
中找到这些图像NEW.pptm
中的customUI14.xml
。然后,从“插入”菜单中插入图标。您可以一次选择所有项目NEW.pptm
,然后将其关闭NEW.pptm
,并将其另存为NEW.ppam
您是否尝试过通过在PowerPoint中按“Alt+F11”并在“项目”窗口中搜索是否有加载项来打开IDE?如果它是用VBA创建的,你应该能够在那里找到它,并可能进行编辑…你是对的!当我使用Alt+F11时,在VBE IDE中找不到外接程序。这是否意味着外接程序不是在VB中创建的,或者我没有看到它是因为其他原因。每次打开演示文稿时,我都会加载加载项。它目前不在C:\Users\%USERNAME%\AppData\Roaming\Microsoft\AddIns中。它可以使用C#的VB.NET创建,但请选中它-通过单击左侧的十字/方形图标以添加名称,尝试展开project。此外,您可以在PP应用程序>>文件>>选项>>加载项中检查文件位置…当我点击Alt-F11时,实际上我甚至没有看到加载项,并且在左侧没有项目扩展方框!我知道文件的位置,在打开PP后双击.ppam文件以加载加载项。但是,我无法看到ppam文件背后的代码。抱歉,我是一个新手-我正在尝试自定义/创建和添加,它可以从外部脚本语言(如R/S-plusThanks Steve)更新PP中的注释和绘图!至少我现在可以看到代码了。我将开始定制代码,以满足我的要求!这是一个古老的答案,我知道。但你救了我的命。谢谢。顺便说一下,同样的技巧——某种程度上——在Mac PowerPoint中也有效。您可以更改PowerPoint的Prefs文件,而不是更改注册表。如果您熟悉PPT/Windows的常规reg设置,那么确定该设置与Mac的Prefs文件之间的对应关系并进行必要的更改并不太困难。值得注意的是,如果您在PowerPoint运行时创建该值并将其关闭,则会将DWORD重置为0。如果转到RegEdit并按F5更新值,则可以看到已进行了更改。只需在关闭所有PowerPoint实例后将其更改回1,然后重新打开即可。是的!谢谢你指出这一点,@brainslaugs83。PPT使用的大多数(如果不是所有)注册表项也是如此。它在启动时读取它们,在内部保存它们,然后在它们被更改或关闭时将它们写回,因此我们在运行时所做的任何更改都将被覆盖。