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:

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