Uppdatera moduler i arbetsböcker
Här visar hur vi kan byta ut en modul i en arbetsbok mot en uppdaterad version. Detta är av intresse om en arbetsbok används av flera användare och t ex uppdateringar ska ske.
Glöm inte av att ange en referens "Microsoft Visual Basic for Applications Extensibility 5.3".
Två saker att komma ihåg:
- Båda arbetsböckerna måste vara öppna.
- Den mottagande arbetsboken måste vara den aktiva arbetsboken när denna kod körs (Det kan justeras ifall annan lösning är önskvärd.)
Sub UppdateraModul()
'© 2002 Alla rättigheter XL-Dennis
Dim vbaProjekt As VBIDE.VBProject
Dim vbaModul As VBIDE.VBComponent
Dim stFil As String, stModul As String
Set vbaProjekt = ThisWorkbook.VBProject
stFil = ThisWorkbook.Path & "\temp.txt"
'Exporterar modulen till textfilen temp.txt
vbaProjekt.VBComponents("mdVBA").Export stFil
Set vbaProjekt = ActiveWorkbook.VBProject
stModul = "mdVBA"
'Importerar filen till den aktiva arbetsboken.
On Error GoTo Felhantering
With vbaProjekt.VBComponents
.Remove VBComponent:=.Item(stModul)
.Import stFil
End With
'Tar bort den temporära filen
Kill stFil
MsgBox "Uppdateringen är klar!"
Exit Sub
Felhantering:
MsgBox "Antingen så är VBA-Projektet skyddat eller så används Excel 2002." & vbCrLf _
& "Vänligen kontakta din IT-ansvarig för närmare instruktioner."
End Sub