Ir ao conteúdo
  • Cadastre-se

Macro para negritar apenas algumas palavras de uma célula


Posts recomendados

Prezados,

Fiz uma planilha para facilitar minha vida no trabalho. A planilha faz muitas coisas, mas, ironicamente, não consegui, de jeito nenhum, fazer algo que achei que fosse simples: um código para negritar apenas algumas palavras de uma célula.
O mais perto que cheguei disso foi o código abaixo, mas ele negrita o texto da célula DESDE O INÍCIO, e eu quero negritar ALGUMAS palavras NO MEIO do texto.
Se alguém puder ajudar, ficarei muito agradecido.

 

 

sub Negritar (pPlanilha, pCol, pLin, pInicio, pTamanho)

'COMENTÁRIOS SOBRE OS PARÂMETROS
'pPlanilha: é a planilha em que está a célula
'pCol: a coluna da célula que contém o texto a ser trabalhado
'Lin: a linha da célula que contém o texto a ser trabalhado
'pInicio: é a posição do texto em que deve iniciar o negrito
'Tamanho: é a extensão do texto que deve ser negritado
'
'Ex: Negritar ("Ata", 0, 11, 50, 10)
'No exemplo, pega a célula A10 (0,11) e negrita o texto a partir da posição 50
'com extensão de 10 caracteres


oPlanilha = ThisComponent.Sheets.getByName(pPlanilha)
ThisComponent.CurrentController.setActiveSheet(oPlanilha)
tPlanilha = ThisComponent.CurrentController.ActiveSheet

Dim oCell As Object
Dim oCursor As Object
Dim oText As Object
Dim colonLoc As Long
Dim i As Long

oCell = tPlanilha.getCellByPosition(pCol,pLin)
tmpTamTotal = Len(oCell.getString())
oText = oCell.getText()
oCursor = oText.createTextCursor
oCursor.gotoStart(False)

for i = 0 to tmpTamTotal-1
   If i>= pInicio and i<=pInicio+pTamanho then
        oCursor.CharWeight = com.sun.star.awt.FontWeight.BOLD
   End If
   oCursor.goRight(i,True)
next i

End Sub

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...

Aluísio Duarte,

 

Você já encontrou uma solução para sua macro?

 

Bem, eu estava dando uma olhada em seu código e fiz algumas alterações que funcionaram aqui no meu LibreOffice.

 

Espero que ele funcione para você também!

Sub Negritar (pPlanilha, pCol, pLin, pInicio, pTamanho)'COMENTÁRIOS SOBRE OS PARÂMETROS'pPlanilha: é a planilha em que está a célula'pCol: a coluna da célula que contém o texto a ser trabalhado'Lin: a linha da célula que contém o texto a ser trabalhado'pInicio: é a posição do texto em que deve iniciar o negrito'Tamanho: é a extensão do texto que deve ser negritado''Ex: Negritar ("Ata", 0, 11, 50, 10)'No exemplo, pega a célula A10 (0,11) e negrita o texto a partir da posição 50'com extensão de 10 caracteresoPlanilha = ThisComponent.Sheets.getByName( pPlanilha )ThisComponent.CurrentController.setActiveSheet( oPlanilha )tPlanilha = ThisComponent.CurrentController.ActiveSheetDim oCell As ObjectDim oCursor As ObjectDim oText As ObjectDim colonLoc As LongDim i As LongoCell = tPlanilha.getCellByPosition( pCol,pLin )tmpTamTotal = Len(oCell.getString())oText = oCell.getText()oCursor = oText.createTextCursoroCursor.gotoStart(False) 'Cursor no íniciooCursor.goRight( (pInicio-1),False ) 'Cursor antes da primeira letraoCursor.goRight( pTamanho,True ) 'Cursor no final da palavra                                 'True seleciona o percursooCursor.CharWeight = com.sun.star.awt.FontWeight.BOLDEnd Sub

[]s.

TianK

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...