質問

私は、組織内の多数のユーザーにExcelアドインとして展開されるXLAファイルを持っています。私の意図は、 "Application Data \ MyCompany"のユーザーの「ドキュメントと設定」フォルダのディレクトリに展開することです。 (実際、これはすべてXLAの最新バージョンをローカルにコピーしてExcelアドインとしてインストールするラッパーを介して動作します。

しかし、このXLAで定義されている関数を参照するシートをユーザーが作成した場合、Excelは関数呼び出し内のXLAの絶対パスを格納します。したがって、ユーザがシートを同僚に送信すると、XLAのコピーが異なる絶対パスにあるため、機能を解決できなくなります(それらのユーザー名は絶対パスの一部であるため)。

今までの私の信念は、XLAがアドインとしてインストールされている限り、「ちょうどコピーされた」とされていましたが、これはケースのようには見えませんでした。

すべてのユーザーのための私のアドインに同一の絶対パスを強制する必要がある場合は、実際にいますか?これは単一の組織内で可能ですが、私は正直にこれがXLSファイルの共有を真剣に妨げるので、これが真実であるとは思わない。

ありがとう。

役に立ちましたか?

解決

これを行う良い方法はありません。私はローカルではなく私のXLAファイルをネットワーク共有に置き、UNCパスを介してそれらをインストールします。誰もが共有にアクセスできるため、私にとってのみ機能します。これが他の選択肢

です

href="http://www.dailydoseofexcel.com/archives/2008/06/02/fixing-links-to-udfs-in-addins/" rel="noreferrer"> http:// www・.dailydoseofexcel.com /アーカイブ/ 2008/06/02 / Fixing-Links-To-UDFS-IN-ADDINS /

他のヒント

このようなサブでパスを削除する:

Sub RemoveXlaPath()
'
' Goal: delete the path reference to the add-in, i.e. everything before and including the '!'
' ='C:\Program Files (x86)\Microsoft Office\Office14\LIBRARY\populator.xlam'!famedata(...)
'
    Cells.Replace What:="'C:\*xla*'!", Replacement:="", _
                    LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
                    SearchFormat:=False, ReplaceFormat:=False
End Sub
.

環境変数ベースのパスを指定できますか?例えば。%APPDATA%\MyCompany

私がしたことは私がユーザーにXLSを与えることです、それはその上にOpen Eventを持っていて、XLAをOpen Eventの一部としてインストールするいくつかのコードにあります。また、OLDバージョン(削除バーとコマンドバー)もアンインストールされます。この自己分布理論的にはそれはあらゆる道を片付けることができます。これは、誰もがアクセスできる共有ドライブがあると仮定します。これにより、XLAをローカルドライブにコピーするのを防ぎます。あるいは、共有ドライブ上のXLAを使用してXLAへのショートカットを電子メールで送信します。可能であれば、ローカルドライブにXLAを望みません。

XLAがローカルドライブ上になければならない場合 - これが機能するかどうかが確かないが、OpenイベントのXLSは、パスを修正し、XLAをインストール/インストールすることができる。しかし、あなたがインターネットを介してXLSを送っているならば、XLSのOn OpenイベントはXLAが利用可能かどうかをチェックし、ユーザーに何をすべきかを指示するメッセージボックスを表示することができます - このXLAをインストールすることは別の添付ファイルになります。 XLAは、Open Eventの一部としてのパスをクリーンアップすることができます - いくつかのアイデアだけです。

もう1つの可能性はOpenイベントのXLAがOpenイベントでXLSSを変更でき、XLSが分散された場合XLSが利用可能かどうかを確認できます。トリッキーな。

It's a poor oversight that makes add-ins barely manageable for shared use. Other than this, using .XLAM add-ins is a good way to avoid having to have macro-enabled spreadsheets (the shared spreadsheet can be distributed without macros and the macros can reside in an .XLAM)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top