Ommit
Существует два способа добавления ссылок через VBA в ваши проекты
1) Использование GUID
2) Прямая ссылка на dll.
Позвольте мне охватить оба.
Но сначала это 3 вещи, о которых нужно позаботиться
a) Макросы должны быть включены
b) В настройках безопасности убедитесь, что установлен флажок «Доверительный доступ к проекту Visual Basic»

c) Вы вручную установили ссылку на объект `Microsoft Visual Basic для расширений приложений '

Способ 1 (с использованием GUID)
Я обычно избегаю этого, так как мне приходится искать GUID в реестре ... который я ненавижу LOL. Подробнее о GUID здесь .
Тема: Добавление справочной библиотеки VBA с помощью кода
Ссылка : http://www.vbaexpress.com/kb/getarticle.php?kb_id=267
'Credits: Ken Puls
Sub AddReference()
'Macro purpose: To add a reference to the project using the GUID for the
'reference library
Dim strGUID As String, theRef As Variant, i As Long
'Update the GUID you need below.
strGUID = "{00020905-0000-0000-C000-000000000046}"
'Set to continue in case of error
On Error Resume Next
'Remove any missing references
For i = ThisWorkbook.VBProject.References.Count To 1 Step -1
Set theRef = ThisWorkbook.VBProject.References.Item(i)
If theRef.isbroken = True Then
ThisWorkbook.VBProject.References.Remove theRef
End If
Next i
'Clear any errors so that error trapping for GUID additions can be evaluated
Err.Clear
'Add the reference
ThisWorkbook.VBProject.References.AddFromGuid _
GUID:=strGUID, Major:=1, Minor:=0
'If an error was encountered, inform the user
Select Case Err.Number
Case Is = 32813
'Reference already in use. No action necessary
Case Is = vbNullString
'Reference added without issue
Case Else
'An unknown error was encountered, so alert the user
MsgBox "A problem was encountered trying to" & vbNewLine _
& "add or remove a reference in this file" & vbNewLine & "Please check the " _
& "references in your VBA project!", vbCritical + vbOKOnly, "Error!"
End Select
On Error GoTo 0
End Sub
Способ 2 (Прямая ссылка на dll)
Этот код добавляет ссылку на Microsoft VBScript Regular Expressions 5.5
Option Explicit
Sub AddReference()
Dim VBAEditor As VBIDE.VBE
Dim vbProj As VBIDE.VBProject
Dim chkRef As VBIDE.Reference
Dim BoolExists As Boolean
Set VBAEditor = Application.VBE
Set vbProj = ActiveWorkbook.VBProject
'~~> Check if "Microsoft VBScript Regular Expressions 5.5" is already added
For Each chkRef In vbProj.References
If chkRef.Name = "VBScript_RegExp_55" Then
BoolExists = True
GoTo CleanUp
End If
Next
vbProj.References.AddFromFile "C:\WINDOWS\system32\vbscript.dll\3"
CleanUp:
If BoolExists = True Then
MsgBox "Reference already exists"
Else
MsgBox "Reference Added Successfully"
End If
Set vbProj = Nothing
Set VBAEditor = Nothing
End Sub
Примечание : Я не добавил обработку ошибок. Рекомендуется, чтобы в вашем фактическом коде использовалось:)
РЕДАКТИРОВАТЬ Избит mischab1
:)