В моей собственной ограниченной среде (небольшое количество других людей, использующих электронные таблицы, которые я разрабатываю, относительно стандартные настройки машины), если я создаю файл и добавляю ссылки, а затем предоставляю копию кому-то еще, они могут открыть его безпроблем и не надо ничего делать, так что имейте это в виду с этим ответом.(Мне интересно, почему это не работает для вас.) Кроме того, это было в Excel.
Вместо того, чтобы добавлять ссылку из пути к файлу, вы можете вместо этого использовать свойство GUID.
Вот код, который я когда-то использовал для автоматического создания ссылок во вновь созданной книге.(Это часть сценария, который экспортирует код, ссылки и модульные тесты на рабочих листах в текст для использования с Subversion, а затем восстанавливает рабочую книгу из текстовых файлов.) Вы можете найти это полезным в вашей ситуации.(EH и очистка удалены, чтобы сократить его ...)
'Export refs in existing workbook to text file
Private Sub exportRefs_(srcWbk As Workbook)
Dim fs As FileSystemObject
Set fs = New FileSystemObject
Dim tsout As TextStream
Set tsout = fs.CreateTextFile(fs.BuildPath(getTargetPath_(srcWbk), "refs.refs"))
Dim ref As Reference
For Each ref In Application.ThisWorkbook.VBProject.References
Call tsout.WriteLine(ref.GUID)
Next ref
'<EH + cleanup...>
End Sub
'Add refs to newly created workbook based on previously exported text file
Private Sub importRefs_(wbk As Workbook, path As String)
Dim fs As FileSystemObject
Set fs = New FileSystemObject
Dim tsin As TextStream
Set tsin = fs.OpenTextFile(path)
Dim line As String
Dim ref As Reference
While Not tsin.AtEndOfStream
line = tsin.ReadLine()
Set ref = Nothing
On Error Resume Next
Set ref = wbk.VBProject.References.AddFromGuid(line, 0, 0)
On Error GoTo 0
If ref Is Nothing Then
Debug.Print "add failed: " & line
End If
Wend
'<EH + cleanup...>
End Sub
Как я уже сказал, ограниченная среда, но, надеюсь, это поможет.