21. juli 2003 - 09:53Der er
17 kommentarer og 1 løsning
VBA Editor: Gemme regneark uden makro
Kan det lade sig gøre at gemme et regneark uden makro? Jeg har et regneark med en makro, hvor man skal udfylde forskellige ting, og regnearket gemmes automatisk under et nyt navn et specifikt sted. Vha. et tidligere spørgsmål har jeg fået noget kode som fjerner al kode i makroen. Men der er stadig moduler og forms tilbage og når det gemte regneark åbnes og den spørger om man vil disable eller enable makroen og det er det jeg vil have fjernet, fordi det gemte regneark skal ikke have nogen makro. Kan man kode sig ud at dette problem?
Public Sub CodeRemove(ProjMappe) Set WB = Workbooks(ProjMappe) For x = WB.VBProject.VBComponents.Count To 1 Step -1 n = WB.VBProject.VBComponents(x).Name a = WB.VBProject.VBComponents(x).CodeModule.CountOfLines If a > 0 Then WB.VBProject.VBComponents(x).CodeModule.DeleteLines 1, a End If On Error Resume Next WB.VBProject.VBComponents.Remove WB.VBProject.VBComponents(x) On Error GoTo 0 Next x End Sub
Sub gem() Call CodeRemove(ActiveWorkbook.Name) ActiveWorkbook.SaveAs s_FileName ActiveWorkbook.Close End Sub
Den spørger stadig om makroen skal afspilles når jeg åbner det gemte ark. Men al koden er væk og det er jo en start. Kan man også slette modulerne og formene?
Hvis du kører ovenstående makro skulle alle moduler og form da gerne være slettet og fjernet. Der vil så være arkenes egne moduler tilbage, men der er al kode slettet. (Thisworkbook og arkmodulerne kan ikke fjernes)
Jeg forstår ikke helt det her. Ved mig fjernes alle moduler og forms i den aktive projektmappe og de der ikke er beregnet til at fjerne slettes/ryddes.
Det er da en mulighed, men hvis du kopierer arkenene følger arkets kode med (hvis du sådanne makroer). Hvis du ikke v i l have makroen i et separat regneark eller i person.xls, så kan man overføre dette modul til et midlertidig regneark, køre makroen og derefter slette det midlertidige regneark.
...og så er vi tilbage i den kommentar jeg afgav første gang spørgsmålet blev stillet. Det er i øvrigt min holdning at man bør holde fingrene væk fra VBComponents.Remove metoden hvis ikke man først eksporterer moduler, forms etc.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.