Aktivera tilläggsverktyg i Excel


När vi automatiserar Excel, t ex från Visual Basic, så laddas inga tilläggsverktyg utan enbart Excel. Det gör att det går snabbare vid uppstart men också att tilläggsverktygens funktionalitet saknas.

Det kan därför vara önskvärt att ett eller flera tilläggsverktygs finns tillgängliga när vi öppnar Excel via automation.
 

Här visas en teknik för det samt hur vi nyttjar Excels objekt till fullo.

 

Option Explicit

 Private Sub Aktivera_Tillaggsverktyg()

   '© 2004 Alla rättigheter XL-Dennis

   Dim xlApp As Excel.Application

   Dim xlwbBook As Excel.Workbook, xlwbAddin As Excel.Workbook

   Dim xlwsSheet As Excel.Worksheet

   Dim rnData As Excel.Range

   Dim stFile As String, stAddin As String

 

   stFile = "c:\Test.xls"

   stAddin = "E:\Arbetsmaterial\Klocktid.xla"

 

   'Instantierar nytt Excel-object.

   Set xlApp = New Excel.Application

 

   'Öppnar arbetsbok.

   Set xlwbBook = xlApp.Workbooks.Open(stFile)

   Set xlwsSheet = xlwbBook.Worksheets("Blad1")

 

   'Öppnar tilläggsverktyget eller så

   'Set xlwbAddin = xlApp.Workbooks.Open(stAddin)

 

   'aktiverar vi tilläggsverktyget så här.

   xlApp.AddIns.Add(stAddin, True).Installed = True

 

   With xlwsSheet

      Set rnData = .Range(.Range("A1"), .Range("A65536").End(xlUp))

   End With

 

   'Markerar cellområdet.

   rnData.Select

 

   'Exekverar den önskade proceduren.

   xlApp.Run "Klocktid.xla!Omvandla_Tid"

 

   'Sparar och stänger arbetsboken.

   With xlwbBook

      .Save

      .Close

   End With

 

   'Stänger tilläggsverktyget när vi öppnar det som en vanligt arbetsbok.

   'xlwbAddin.Close

 

   'Stänger Excel.

   xlApp.Quit

 

   'Tömmer arbetsminnet.

   Set rnData = Nothing

   Set xlwsSheet = Nothing

   Set xlwbBook = Nothing

   Set xlApp = Nothing

 

   MsgBox "Klart!", vbInformation

 End Sub