Infoga eller uppdatera enstaka procedurer
I detta tips visas hur vi kan skapa en procedur och infoga den i önskad modul i den aktiva arbetsboken.
Glöm inte av att ange en referens "Microsoft Visual Basic for Applications Extensibility 5.3".
Option Explicit
Sub Infoga_Uppdatera_Procedur()
'© 2002 Alla rättigheter XL-Dennis
Dim cdModul As VBIDE.CodeModule
Dim lnRadnr As Long
Dim stSubNamn As String, stProcedur As String, stSlut As String
Dim stApostrof As String, stTabb As String, stNyRad As String
stApostrof = Chr(34)
stTabb = Chr(9)
stNyRad = Chr(13)
stSlut = "End Sub"
'Här anges den önskade proceduren.
stSubNamn = "Private Sub Workbook_Open()" & stNyRad
'Här skapas procedurinnehållet.
stProcedur = "Dim i As Long" & stNyRad
stProcedur = stProcedur & _
"WorkSheets(1).ComboBox1.Clear" & stNyRad
stProcedur = stProcedur & _
"For i = 1 To 5" & stNyRad
stProcedur = stProcedur & _
stTabb & "Worksheets(1).ComboBox1.AddItem i" & stNyRad
stProcedur = stProcedur & _
"Next i" & stNyRad
Set cdModul = ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
'Här infogas den skapade proceduren i den aktiva arbetsboken.
With cdModul
lnRadnr = .CountOfLines + 1
.InsertLines lnRadnr, stSubNamn & stProcedur & stSlut
End With
End Sub
Här visas det färdiga resultatet i den aktiva arbetsboken och i modulen "ThisWorkbook".
OBS! Ovanstående procedur kontrollerar varken om modul eller om proceduren existerar, än mindre tar bort modul eller tidigare procedur.
Option Explicit
Private Sub Workbook_Open()
Dim i As Long
Worksheets(1).ComboBox1.Clear
For i = 1 To 5
Worksheets(1).ComboBox1.AddItem i
Next i
End Sub