我目前正在使用类似于以下的 VBA 代码来指定共享库的位置,以用于从 Office 应用程序到桌面应用程序的通信(传递字符串)。VBA 代码/宏需要存在于加载项 (.ppa) 中。
Private Declare Sub sharedLibPassString CDecl Lib "/Users/myUserName/Library/Application Support/myCompanyName/MySharedLib.dylib" Alias "PassString" (ByVal aString As String)
在来自 VBA 宏的代码中,我可以执行以下操作。
Call sharedLibPassString(myString)
我的通信正常,但我想/Users/myUserName/
用当前用户的主目录替换该部分。通常在 Mac 上,您会指定~/Library/Application Support/...
,但~/
语法不起作用,会产生“找不到文件”运行时错误。
我发现使用以下环境变量方法可以获得我~/
需要的位置:
Environ("HOME")
但是,我看不出有一种方法可以使这部分CDecl Lib
陈述成为可能,因为据我所知,Environ
它是在运行时评估的。
~/
有没有办法在 VBA的用户主目录()中指定共享库的位置?
以下是关于我的环境/方法的一些说明:
- 我使用的是 Mac,但我相信如果有解决方案,它会在 PC 上类似。
- 我认为这无关紧要,但我使用的 Office 应用程序是 PowerPoint (2011)。
- 我尝试访问应用程序支持目录中的区域而不是共享库的默认位置的原因是因为我希望桌面应用程序将共享库放置在没有安装程序的位置,并且不需要用户或管理员的权限。如果有更好的解决方案或位置来完成相同的任务,这也将非常有帮助。