Come sovrascrivere file che contiene macro senza perderle
Ho un file di Excel con delle macro, come faccio a sovrascrivere il file che contiene le macro senza perderle?
Una strada da percorrere potrebbe essere quelle di esportare le macro del file, prima di sovrascriverlo, in una Dir e dopo aver effettuato l’operazione, importare le macro sul nuovo file.
Il codice che ora posto è stato preso da alcuni siti, che pero è stato adattato, con opportune aggiunte,allo scopo.
Questo spezzone di codice non fa altro che esportare tutte le macro in una Dir del nostro file aperto di Excel.
Sub Alle_modules_export()
Dim szTargetWorkbook As String
Dim wkbTarget As Excel.Workbook
Dim cmpComponents As VBIDE.VBComponents
Dim cp As Object
szTargetWorkbook = ActiveWorkbook.Name
Set wkbTarget = Application.Workbooks(szTargetWorkbook)
Set cmpComponents = wkbTarget.VBProject.VBComponents For Each cp In cmpComponents
cp.Export “C:\Users\Albatros\Desktop\provaimportamacro\” & cp.Name & Switch(cp.Type = 1, “.bas”, cp.Type = 3, “.frm”, cp.Type = 2, “.cls”, cp.Type = 100, “.cls”)
Next
End Sub
Le righe da 1 a 4 dichiaro le variabili, N.B.”cmpComponents As VBIDE.VBComponents” dichiaro “cmpComponents” come elemento del VBProject.
5 assegno alla varibile il nome del file
6 setto szTargetWorkbook come oggetto
7 setto wkbTarget.VBProject.
8 ciclo tutti gli oggetti in “cmpComponents”
9 Esporto l’oggetto trovato “cp” nella Dir “&” assegno il nome all’oggetto “&” controllo il type di oggetto ed assegno l’estenzione(1 è un file
.bas, 3 è una userform .frm, 2 è una classe .cls, 100 è il nostro file)
10 incremento il ciclo.