Ayuda con documentación

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
esi.medina
Mensajes: 2
Registrado: Mar Sep 28, 2010 7:12 am

Ayuda con documentación

Mensaje por esi.medina »

Hola:

Me gustaría hacer una macro sencilla que a partir de un documento abierto seleccione todo el texto, lo copie, añada al final la palabra CORRECCIÓN y justo debajo pegue el texto original. Despues de esto la macro debería cargar automáticamente un estilo que ya está creado.

En Word sí consigo que lo haga :(

No tengo ni idea de por donde empezar a buscar API's

La macro original en Word es
Sub Macro3()
'
' Macro3 Macro
' Macro grabada el 26/09/2010 por domus
'
Selection.WholeStory
Selection.Copy
Selection.EndKey Unit:=wdLine
Selection.InsertBreak Type:=wdPageBreak
Selection.Font.Bold = wdToggle
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.TypeText Text:="CORRECCIÓN"
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
Selection.Font.Color = wdColorRed
Selection.EndKey Unit:=wdLine
Selection.TypeParagraph
Selection.TypeParagraph
Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft
Selection.Font.Color = wdColorAutomatic
Selection.PasteAndFormat (wdPasteDefault)
With ActiveDocument
.UpdateStylesOnOpen = True
.AttachedTemplate = "IEDA"
End With
end sub

Gracias
OpenOffice 3.2.0 en Guadalinex V6 y WXP
Avatar de Usuario
mauricio
Mensajes: 6093
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: Ayuda con documentación

Mensaje por mauricio »

Hola...

Prueba la siguiente macro:

Código: Seleccionar todo

Option Explicit

Sub Main
Dim oDoc As Object
Dim oDispatcher As Object
Dim oTexto As Object
Dim oCursor As Object

	oDoc = ThisComponent.getCurrentController.getFrame()
	oTexto = ThisComponent.getText()
	oCursor = oTexto.createTextCursor()
	oCursor.gotoEnd( False )
	oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
	'Seleccionamos y copiamos
	oDispatcher.executeDispatch(oDoc, ".uno:SelectAll", "", 0, Array())
	oDispatcher.executeDispatch(oDoc, ".uno:Copy", "", 0, Array())
	'Movemos el cursor visible al final
	ThisComponent.getCurrentController.getViewCursor.gotoEnd( False )
	'Insertamos tres saltos de parrafo
	oTexto.insertControlCharacter( oCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
	oTexto.insertControlCharacter( oCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
	oTexto.insertControlCharacter( oCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
	'EL texto deseado
	oTexto.insertString( oCursor, "CORRECCIÓN: ", False )
	'Otros dos saltos para que no quede muy juno
	oTexto.insertControlCharacter( oCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
	oTexto.insertControlCharacter( oCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
	'Pegamos
	oDispatcher.executeDispatch(oDoc, ".uno:Paste", "", 0, Array())

End Sub
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder