Estou fazendo uma macro simples para colocar as tags <b></b> no que for negrito e <i></i> no que for itálico dentro de um texto. Porém a macro colocar as tagas em cada palavra. Existem grandes trechos que estão em negrito e itálico em sequência então precisaria que o Word entendesse isso.
<b>teste teste teste teste</b> <i>teste teste teste teste</i>
Não consigo explicar pro word que eu quero que ele olhe o documento inteiro, depois selecione os blocos com a formatação desejada (itálico ou negrito) e coloque um tag antes e no final de cada bloco.
Alguém saberia como fazer isso? O meu programa está assim:
Pergunta
fgarav
Boa tarde,
Estou fazendo uma macro simples para colocar as tags <b></b> no que for negrito e <i></i> no que for itálico dentro de um texto. Porém a macro colocar as tagas em cada palavra. Existem grandes trechos que estão em negrito e itálico em sequência então precisaria que o Word entendesse isso.
Por exemplo:
O que o programa abaixo está fazendo:
antes:
teste teste teste teste teste teste teste teste
depois:
<b>teste</b> <b>teste</b> <b>teste</b> <b>teste</b> <i>teste</i> <i>teste</i> <i>teste</i> <i>teste</i>
Enquanto o que eu preciso é:
<b>teste teste teste teste</b> <i>teste teste teste teste</i>
Não consigo explicar pro word que eu quero que ele olhe o documento inteiro, depois selecione os blocos com a formatação desejada (itálico ou negrito) e coloque um tag antes e no final de cada bloco.
Alguém saberia como fazer isso? O meu programa está assim:
Sub macro4()
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
If (Selection.Font.Bold = True) Then
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Font.Reset
Selection.TypeText Text:="<b>"
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.Font.Reset
Selection.TypeText Text:="</b>"
Selection.MoveLeft Unit:=wdCharacter, Count:=4
Selection.TypeBackspace
Selection.MoveRight Unit:=wdCharacter, Count:=4
Selection.TypeText Text:=" "
ElseIf (Selection.Font.Italic = True) Then
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Font.Reset
Selection.TypeText Text:="<i>"
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.Font.Reset
Selection.TypeText Text:="</i>"
Selection.MoveLeft Unit:=wdCharacter, Count:=4
Selection.TypeBackspace
Selection.MoveRight Unit:=wdCharacter, Count:=4
Selection.TypeText Text:=" "
End If
End Sub
Valeu!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.