現在、次のような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)です。
- 共有ライブラリのデフォルトの場所ではなく、アプリケーションサポートディレクトリ内の領域にアクセスしようとしている理由は、デスクトップアプリケーションで、インストーラーがなく、インストーラーがなくても共有ライブラリを配置できるようにするためです。ユーザーまたは管理者の特権。同じタスクを実行するためのより良い解決策または場所がある場合、これも非常に役立ちます。