• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEl:ユーザー定義関数をLANで共有する方法)

EXCEl:ユーザー定義関数をLANで共有する方法

このQ&Aのポイント
  • EXCELでユーザー定義関数をLANで共有する方法について解説します。
  • LAN接続を利用してVBAを共有する方法をお探しの方におすすめの解決策をご紹介します。
  • ユーザー定義関数をワークシートでも使用したい場合に発生する問題と、解決策について詳しく説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

ひとつの方法としては、[ネットワークドライブの割り当て]を使って 同じドライブ文字を使うようにする事で対処できるかもしれません。 例) \\SvA\folder\Addin.xla \\SvB\folder\Addin.xla という配置だとして、 SvAユーザーは\\SvA\folder をドライブ J: に割り当て SvBユーザーは\\SvB\folder をドライブ J: に割り当て またはAddinファイルに、強制的にChangeLinkさせるようにするコードを仕込むとか。 'ThisWorkbook Module Option Explicit Private WithEvents xApp As Application Private Sub Workbook_BeforeClose(Cancel As Boolean)   Set xApp = Nothing End Sub Private Sub Workbook_Open()   Set xApp = Application End Sub Private Sub xApp_WorkbookOpen(ByVal Wb As Workbook)   Const svA = "\\SvA\folder\Addin.xla"   Const svB = "\\SvB\folder\Addin.xla"   Dim oldN As String   Dim newN As String   Dim vLinks, v   With Wb     vLinks = .LinkSources(Type:=xlLinkTypeExcelLinks)     If Not IsEmpty(vLinks) Then       newN = ThisWorkbook.FullName       If newN = svA Then         oldN = svB       Else         oldN = svA       End If       For Each v In vLinks         If v = oldN Then           .ChangeLink Name:=oldN, NewName:=newN, Type:=xlExcelLinks         End If       Next     End If   End With End Sub ただ、この方法の欠点としては、強制的にChangeLinkさせてますから、 [更新しない]を選択しても更新されてしまう事になります。(多分

masnoske
質問者

お礼

回答ありがとうございました。 ChangeLinkを使う方法は、運用が難しいようです。 結局、個々のPCのCドライブに同じ名前のアドイン保存用のフォルダを作成し、スタートアップ時にサーバーからこのフォルダに自動でコピーする方法を採用しました。

関連するQ&A

専門家に質問してみよう