VBA: Luk xla fil efter reference er fjernet
Ja så er jeg her lige igen ;)Jeg har mine macroer liggende i en selvstændig xla fil som inkluderes når mit Excel dokument åbnes (se nedenstående kode). Problemet er så at jeg gerne vil ha' denne xla fil lukket når jeg lukker mit Excel dokument. Her tænker jeg på når man bare lukket selve det dokument man har åben i Excel, mens selve Excel stadig er åben. Jeg kan sagtens få fjernet referencen til xla filen, men har som skrevet, problemer med at lukke selve filen. En xla fil ligger som jo ikke oppe under menuen "Windows" ligesom en alm. xla fil, så derfor kan man jo ikke bare lave en f.eks. Application.Windows(1).Close
Jeg bruger pt. nedenstående kode:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
RemoveMacroReference
End Sub
Private Sub Workbook_Open()
AddMacroReference "C:\Macro.xla"
End Sub
Public Sub AddMacroReference(pFile As String)
On Error Resume Next
If FileExists(pFile) Then
Application.VBE.ActiveVBProject.References.AddFromFile pFile
Else
MsgBox "Macro file not found. This document will NOT work correctly" & Chr(10) & Chr(10) & "Please correct the path and try again", vbCritical, "Macro file not found"
End If
On Error GoTo 0
End Sub
Public Sub RemoveMacroReference()
On Error Resume Next
Set vbProj = Application.VBE.ActiveVBProject
For Each chkRef In vbProj.References
If chkRef.Name = "NavnPåMinMacro" Then
vbProj.References.Remove chkRef
'Her vil jeg så gerne lukke selve xla filen!!!
End If
Next
End Sub
Nogen forslag? :)
På forhånd tak.
