Macro para borrar secciones
Macro para borrar secciones
Tengo un problema, en una gran cantidad de documentos, me aparece una sección protegida contra escritura. Cambiar 1 a 1 los archivos es inviable, sí alguien supiese de una macro, me ayudaría muchísimo. Gracias!!
OpenOffice 4.1 en Windows 7
Re: Macro para borrar secciones
¿Has probado con la grabadora de macros?
Si puede grabar la macro para desbloquear una sección, puede darnos pistas.
Si puede grabar la macro para desbloquear una sección, puede darnos pistas.
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
-
- Mensajes: 5
- Registrado: Lun Ene 12, 2015 6:00 pm
Re: Macro para borrar secciones
Tengo algo en Visual Basic 6....
si le sirve???? avise... es algo asi:
Borra Todas las Secciones de un Documento...
Document: Referencia al Documento OpenOffice
si le sirve???? avise... es algo asi:
Borra Todas las Secciones de un Documento...
Código: Seleccionar todo
If Document.getTextSections().getCount() > 0 Then
Set oSec = Document.getTextSections()
Names = Document.getTextSections.getElementNames()
For i = 0 To UBound(Names)
Set oSeccion = oSec.getByName(Names(i))
Set oText = Document.text
oSeccion.isProtected = False
oSeccion.Anchor.String = ""
Call oText.removeTextContent(oSeccion)
Next i
End If
Última edición por SLV-es el Sab Jun 13, 2015 6:51 pm, editado 1 vez en total.
Razón: Insertar etiquetas [Code]
Razón: Insertar etiquetas [Code]
OpenOffice 4.1.1 en Windows 7
Re: Macro para borrar secciones
Este código no es Visual Basic
Las macros en Apache OpenOffice pueden escribirse, entre otros, en lenguaje Basic, bastante similar a Visual Basic, pero los objetos que se emplean son por completo diferentes.
Los objetos utilizados en el código son de OpenOffice, por lo que la macro está escrita en Basic y es sólo para OpenOffice/LibreOffice.
Saludos
Las macros en Apache OpenOffice pueden escribirse, entre otros, en lenguaje Basic, bastante similar a Visual Basic, pero los objetos que se emplean son por completo diferentes.
Los objetos utilizados en el código son de OpenOffice, por lo que la macro está escrita en Basic y es sólo para OpenOffice/LibreOffice.
Saludos
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
-
- Mensajes: 5
- Registrado: Lun Ene 12, 2015 6:00 pm
Re: Macro para borrar secciones
El código que envie... está en Visual Basic 6... Yo lo estoy utilizando... claro que es muy muy similar PERO NO IGUAL
Se deben iniciar las variables para abrir el Documento... asi(ejemplo):
Se deben iniciar las variables para abrir el Documento... asi(ejemplo):
Código: Seleccionar todo
Dim oServiceManager As Object
Dim oDesktop As Object
Dim Document As Object
Dim args() As Variant
luego (donde Ruta_Archivo es la ruta del archivo debidamente arreglada o sea "File:///" & Replace(Ruta_Archivo, "\", "/")):
Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
Set oDesktop = oServiceManager.createInstance("com.sun.star.frame.Desktop")
Set Document = oDesktop.loadComponentFromURL(Ruta_Archivo, "_blank", 0, args())
Logicamente hay que declarar e iniciar las variables... asi:
Private Document as Object (Public o Dim... según el caso)
Private oSec as Object
Private oSeccion as Object
Private oText as Object
Private oSeccion as Object
..... asi todas las variables que vayas a utilizar en el código....
If Document.getTextSections().getCount() > 0 Then
Set oSec = Document.getTextSections()
Names = Document.getTextSections.getElementNames()
For i = 0 To UBound(Names)
Set oSeccion = oSec.getByName(Names(i))
Set oText = Document.text
oSeccion.isProtected = False
oSeccion.Anchor.String = ""
Call oText.removeTextContent(oSeccion)
Next i
End If
Última edición por mauricio el Sab Oct 03, 2015 6:54 pm, editado 1 vez en total.
Razón: Usar etiquetas CODE
Razón: Usar etiquetas CODE
OpenOffice 4.1.1 en Windows 7