Ir ao conteúdo
  • Cadastre-se
Aluísio Duarte

Macro para negritar apenas algumas palavras de uma célula

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, TianK!

 

Funcionou direitinho!

 

Bah, essa minha dúvida foi como uma garrafinha jogada ao mar... achei que ninguém iria achar, depois de tanto tempo...

 

Muito obrigado!! :)  :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×