On Wed, 2011-11-09 at 17:55 -0500, Andrew Douglas Pitonyak wrote: > > On 11/09/2011 05:45 PM, Andrew Douglas Pitonyak wrote: > > > > > > On 11/09/2011 05:07 PM, drew wrote: > >> On Wed, 2011-11-09 at 20:12 +0000, Alex Thurgood wrote: > >>> Le 09/11/2011 10:22, hhm a écrit : > >>> > >>> > >>> Hi Hans, > >>> > >>>> I'm looking for a way to find every macro that is attached to a > >>>> document and > >>>> delete or respectively deactivate them. How do I do that? > >>>> > >>> With a script would probably be the easisest way, by unzipping the OD* > >>> files and parsing the unzipped contents to seach for the Basic > >>> directory, deleting it, then rezipping the file ? > >> Hi Alex, > >> > >> I was thinking it took a bit more then that and so I just tried it and > >> yes. > >> > >> You need to make three changes. > >> > >> After unzipping the file you remove two directories: > >> = Basic > >> = Dialogs > >> > >> Then you need to edit the file manifest.xml in the META-INF directory. > >> - remove all lines that reference basic or dialog. > >> [They look something like] > >> <manifest:file-entry manifest:media-type="text/xml" > >> manifest:full-path="Basic/Standard/script-lb.xml"/> > >> > >> Then you re-zip and voila it works. > >> > >> If you leave out the last step the file will not open. > >> > >> HTH somehow, > >> > >> //drew > >> > >> > > Drew's method will work just fine if what you mean to do is to remove > > all macros contained in a document (as opposed to removing all > > references to macros from inside the document; in a button or an > > associated event, for example). > > > See if you can make the document current and run this macro.... > > Sub RemoveAllContainedLibs > Dim sNames > Dim oLibs > Dim i% > > oLibs = ThisComponent.BasicLibraries > sNames = oLibs.getElementNames() > For i = UBound(sNames) To LBound(sNames) Step -1 > oLibs.removeLibrary(sNames(i)) > Next > oLibs = ThisComponent.DialogLibraries > sNames = oLibs.getElementNames() > For i = UBound(sNames) To LBound(sNames) Step -1 > oLibs.removeLibrary(sNames(i)) > Next > End Sub > > > -- Hi Andrew,
Excellent - the only problem is, and it aint yours per so, is removing libraries from a document - at least with LibO 3.4.4 as that is what I tried it on - does not set the dirty flag for the documnet. So if you run the macro and close the document the change isn't saved...arrrgh. Best wishes, //drew -- For unsubscribe instructions e-mail to: users+h...@global.libreoffice.org Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/ Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette List archive: http://listarchives.libreoffice.org/global/users/ All messages sent to this list will be publicly archived and cannot be deleted