适用于Mac的Word 2016 vba加载项

时间:2016-08-23 20:10:39

标签: word-vba-mac

我创建了一个Word加载项,它通过使用visual studio在c#中编写的api与第三方cmd程序进行通信。使用stdin和stdout进行通信。 该计划适用于Windows 2007,2010,2013,2016。

我也成功将其移植到Word 2011 for Mac。这里的api是用ccode编写的,但仍然使用stdin和stdout。 mac上的api是一个dylib,我可以在visual basic编辑器中引用它。 我在2016版的Office for Mac上无法复制这个问题。 由于新的安全限制,我怀疑这可能是不可能的。 当我尝试引用文件时,我只能选择.tlb文件(类型库)。我只在Windows上使用visual studio创建了tlb文件,并且不知道如何在Mac上执行此操作。

任何人都可以回答,如果我试图在2016版的Office for Mac上做到这一点,我可能会找到有关如何创建可以引用的文件的文档吗?

仅供参考:加载项名为WordMat:www.eduap.com

以下来自@erik的信息的其他信息 我在我的lib中声明函数时遇到了麻烦。这是我的声明声明: Declare PtrSafe Function VBstrlen Lib "/Library/Application Support/Microsoft/Office365/User Content.localized/Add-Ins.localized/libMaximaConnection.dylib" (ByVal s As String) As LongPtr

该函数是一个简单的测试函数,它返回字符串的长度。声明函数使用上述路径在Word 2011中按预期工作。

报告的错误是错误53文件无法找到

dylib是32位编译的,因此我不希望它在Office 2016的64位升级后工作,但我预计错误453 DLL无法定位如Word 2011报告。

1 个答案:

答案 0 :(得分:2)

Office 2016是沙盒,具有有限的权限来读取位于特定位置的文件。我写了这篇关于为Mac Office 2016安装用户内容的文档,您可以从http://macadmins.software/docs/UserContentIn2016.pdf

开始

具体来说,dylib必须位于〜/ Library / Group Containers / UBF8T346G9.Office / User Content.localized / Add-Ins.localized /是否为每个特定用户安装,或者在/ Library / Application Support / Microsoft中/ Office365 / User Content.localized / Add-Ins.localized /如果它们在计算机上安装一次,供所有用户共享。

Office 2016应用无法再读取任意文件位置。

另外,当您尝试添加文件引用时无法选择任何非typelib文件可能是一个错误。我得去看看。

Schwieb (首席软件工程师,Apple Platform Experiences Group,Microsoft Corporation)