Macro para enter e negrito no Writer

Eu tinha criado um macro no Office que eu coloquei no atalho do control enter, no qual ele passava para a próxima linha e já negritava ou desnegritava a linha. Tentei repetir no Writer mas ele no máximo negrita a próxima e nao desnegrita em seguida, basicamente ele só funciona uma vez. To sofrendo aqui pra fazer funcionar e eu nao entendo nadinha de macros. se alguém puder ajudar.
inclusive, quando eu associo a macro q eu tentei fazer ao atalho do Command enter, ele nao roda o macro.

O arquivo esta salvo como odt (LibreOffice)?

Poste a macro completa?

Para esclarecer, você deseja que seja ativado o negrito (ou não) sempre no próximo parágrafo, e não que o texto do parágrafo seja negritado, correto?
.

Sendo assim, o que você quer é que cada parágrafo (linha?) seja separada pela formatação do texto nela escrito?
.
Seria algo isso?

Parágrafo 1
Parágrafo 2
Parágrafo 3
Parágrafo 4

Seria negritar a linha ativa?

A atual “desnegrita” quando ir para a próxima linha.

1 Like

eu nao entendo nadinha dessa parte de editar macros, so gravar

REM ***** BASIC *****

sub boldreal
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, “.uno:InsertPara”, “”, 0, Array())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = “Bold”
args2(0).Value = true

dispatcher.executeDispatch(document, “.uno:Bold”, “”, 0, args2())

end sub

Com base no comentário do @schiavinatto
Seria algo parecido com isso?
Ask_AplicaNegrito.odt (17,1,KB)

A macro AplicarNegritoNaUltimaLinha está vinculada ao atalho Ctrl+Enter.

Option Explicit				'	Força a declaração de variáveis

REM ======================================================= MAIN ROUTINES

Sub AlternarNegritoNoTexto(Optional oDoc)
Dim oCursor		As Object

	REM Obtem o documento
	oDoc = IIf( isMissing(oDoc), ThisComponent, oDoc)
	
	REM Obtem cursor do texto
	oCursor = oDoc.Text.createTextCursor()
	
	REM Move cursor para o início do texto
	oCursor.gotoStart(false)
	
	REM Percorre parágrafo por parágrafo e alterna a formatação
	Do
		oCursor.gotoEndOfParagraph( true )
		If oCursor.CharWeight = com.sun.star.awt.FontWeight.BOLD Then
			oCursor.CharWeight = com.sun.star.awt.FontWeight.NORMAL
		Else
			oCursor.CharWeight = com.sun.star.awt.FontWeight.BOLD
		End If
	Loop While oCursor.goToNextParagraph( false )
	
End Sub	'		BasicProject.BP_Writer.AlternarNegritoNoTexto

REM -----------------------------------------------------------------------------
Sub AplicarNegritoNaUltimaLinha(Optional oDoc)
Dim oCursor		As Object

	REM Obtem o documento
	oDoc = IIf( isMissing(oDoc), ThisComponent, oDoc)
	
	REM Obtem cursor do texto
	oCursor = oDoc.Text.createTextCursor()
	
	REM Move cursor para o início do texto
	oCursor.gotoStart(false)
	
	REM Se parágrafo com negrito, retirar formatação
	Do
		oCursor.gotoEndOfParagraph( true )
		If oCursor.CharWeight = com.sun.star.awt.FontWeight.BOLD Then
			oCursor.CharWeight = com.sun.star.awt.FontWeight.NORMAL
		End If
	Loop While oCursor.goToNextParagraph( false )
	
	REM Se cursor na ultima linha aplicar negrito
	If oCursor.isCollapsed() Then
		oCursor.gotoStartOfParagraph( true )
		oCursor.CharWeight = com.sun.star.awt.FontWeight.BOLD
	End If

End Sub	'		BasicProject.BP_Writer.AplicarNegritoNaUltimaLinha

Olá @FelipeAle, atalhos de teclado não são transportados com o arquivo, só funciona na maquina que criou.

Na versão 7.5.2.2, Ctrl+Enter = Inserir quebra de página, em Win.10.

1 Like