第一篇文章在这里发表,还在学习VB,所以要温柔一点:)。
我正在努力理解如何延迟将单词Ribbon绑定到.dotm文件。
我有大量的用户使用Office 2010 (32位)在Windows 10 (64位)平台上工作,但在接下来的几个月中,我们将过渡到Office 365 (64位)。
这两个版本都支持使用XML和VB进行带状定制。我想做以下几件事:
.dotm文件将分发给每个用户计算机到一个受信任的位置,以便在每次打开word会话时加载带状文件,并使宏在单击时运行。
我有一个Office 2010的工作原型,但是Office 365中的相同文件由于缺少对Microsoft Office 15 Object library的引用而无法工作。根据我对“后期绑定”而不是“早期绑定”的理解,我可以解决这个问题,因为我不会直接引用Microsoft Office 2015 object library,而且当Word加载时,它将查找计算机具有和使用的任何引用库来初始化该带。
我知道我需要修改代码,将丝带作为一个Object来引用,但是不确定对这个词的特定调用需要是什么(以及如何将所有的东西连接在一起)。纵观各种MSDN库链接没有帮助,它主要只是困惑我进一步。
我已经在下面发布了我的通用代码。如有任何帮助和建议,将不胜感激。
XML文件如下所示
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Onload">
<ribbon>
<tabs>
<tab id="CustomTab1" label="Tab1">
<group id="Grp1" label="Group1" >
<button id="Grp1Btn1" size="large" label="Button1" image="Button1Image" onAction="Button1Clicked"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>然后,在Project\Microsoft Word Objects\ThisDocument中,我有加载自定义条带的代码,然后将按钮单击到适当的宏。
Option Explicit
Public myRibbon as IRibbonUI
'This is the link to the XML file so the custom ribbon loads at startup
Sub Onload(Ribbon as IRibbonUI)
Set myRibbon = Ribbon
End Sub
'Code for a single button which then runs a macro
Sub Button1Clicked(ByVal control as IRibbonControl)
Macro.Button1
End Sub
'Each button has its own Sub like this one, just with an different name and link to its macro 然后,在Project\Modules\Macro下,我有与每个宏关联的所有代码,如下所示:
Sub Button1()
MsgBox Prompt:="At this point Macro 1 would run, but for this example, all you get is this silly dialog box", Title:="Button 1 Success"
End Sub发布于 2020-08-30 20:26:28
您不需要使用后期绑定使丝带在O365下工作。Word将自动获取后面的对象库。
您需要测试所有的代码,以确保它是64位兼容,但这是一个不同的问题。
对于O365,对象库(.OLB)将位于C:\Program \Microsoft\root\Office 16下。Office 16库(MSO.dll)应该位于C:\Program \Common\Microsoft\Office 16下面。如果他们不在那里你得找出原因。
系统管理员可以为O365设置一些附加的安全选项,包括禁用宏的使用。您需要检查在安装过程中应用了哪些选项,并确保负责部署的人员理解您需要使用宏。
您还需要确保.dotm存储在指定为启动文件夹的文件夹中。您可以在“文件

此位置必须与可信位置中列出的启动位置相同。默认情况下是C:\Users\UserName\AppData\Roaming\Microsoft\Word\STARTUP.您应该注意,C:\Program \Microsoft\root\Office16\下的启动文件夹不再是受信任的位置(在Office2010下,它是一个隐式受信任的文件夹,无论受信任的文件夹设置如何,位于那里的任何.dotm都会工作)。
发布于 2020-08-31 18:07:17
如果这需要在不同的机器上运行,您可以使用代码在特定的机器上找到启动文件夹。不过,用户需要将该文件夹设置为受信任的位置。下面是一个宏,它将路径放入消息中。
Sub ShowStartUpPath()
' Macro written by Charles Kenyon 2014-02-25
' Shows setting for Startup Folder location in Microsoft Word in a message box.
'
MsgBox _
Prompt:="Your StartUp folder location is " & _
Application.StartupPath & _
"." & Chr(13) & Chr(10) & Chr(13) & Chr(10) & ".", _
Buttons:=vbOKOnly, _
Title:="Current Startup Folder Setting Information"
'
End Subhttps://stackoverflow.com/questions/63649581
复制相似问题