On 11/09/2011 07:02 PM, drew wrote:
Yeah, I noticed that too. I considered changing the macro to set the document dirty (I think that I can do that), but, decided it was not worth the trouble to look up how to do it....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, //drewDrew'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.
I upgraded to Fedora 16, installed LO 3.4.3, and then the next day they release 3.4.4.... <sigh>. So that is the same version that I tested with as well.
-- Andrew Pitonyak My Macro Document: http://www.pitonyak.org/AndrewMacro.odt Info: http://www.pitonyak.org/oo.php -- For unsubscribe instructions e-mail to: users+help@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