Ir para conteúdo
Fórum Script Brasil
  • 0

Texto Data por extenso em Font Bold


vieira_mar

Pergunta

Boa dia.

Estou a efectuar um trabalhinho para a minha escola e necessito de alguma ajuda.

O formulário vai reportar um texto para o word nestes termos:

.Bookmarks("TextoIntro").Range.Text = "Convoca-se os docentes, " + strConvocatoriaDe + ", " + "para uma reunião a realizar no dia " + CNomeDia(Day(Calendar1.Value)) + " de " + NomeMes(Month(Calendar1.Value)) + " de " + NomeAno(Year(Calendar1.Value)) + " " + "pelas" + " " + txtHoraActa + ", " + "com a seguinte ordem de trabalhos:"
Exemplo de texto final: Convoca-se os docentes, das Actividades de Enriquecimento Curricular, para uma reunião a realizar no dia dezasseis de Novembro de dois mil e dez, pelas dezoito horas e cinco minutos, com a seguinte ordem de trabalhos: Tenho uma Função, para o dia, que está assim:
Public Function CNomeDia(ByVal intDia As Integer) As String
Dim strDia As String
Select Case intDia
Case 1: strDia = "um"
Case 2: strDia = "dois"
Case 3: strDia = "três"
Case 4: strDia = "quatro"
Case 5: strDia = "cinco"
Case 6: strDia = "seis"
Case 7: strDia = "sete"
Case 8: strDia = "oito"
Case 9: strDia = "nove"
Case 10: strDia = "dez"
Case 11: strDia = "onze"
Case 12: strDia = "doze"
Case 13: strDia = "treze"
Case 14: strDia = "catorze"
Case 15: strDia = "quinze"
Case 16: strDia = "dezasseis"
Case 17: strDia = "dezassete"
Case 18: strDia = "dezoito"
Case 19: strDia = "dezanove"
Case 20: strDia = "vinte"
Case 21: strDia = "vinte e um"
Case 22: strDia = "vinte e dois"
Case 23: strDia = "vinte e três"
Case 24: strDia = "vinte e quatro"
Case 25: strDia = "vinte e cinco"
Case 26: strDia = "vinte e seis"
Case 27: strDia = "vinte e sete"
Case 28: strDia = "vinte e oito"
Case 29: strDia = "vinte e nove"
Case 30: strDia = "trinta"
Case 31: strDia = "trinta e um"
End Select
CNomeDia = strDia
End Function
O que pretendo é que quando ele enviar o dia por extenso, o coloque a negrito. Poderia usar a função Find mas não me parece correcto porque poderá encontrar palavras semelhantes e também as coloca em negrito. Isso não interessa. A única coisa que encontrei que resolve parcialmente a situação, de uma forma pouco correcta é isto:
With ActiveDocument.Content.Find
.ClearFormatting
.Font.Bold = False
.Format = True
.Replacement.ClearFormatting
.Replacement.Font.Bold = True
.Execute Forward:=True, Replace:=wdReplaceAll, FindText:=" um ", ReplaceWith:=" um " 'Linha a alterar
End With

Teria de repetir a "linha a alterar" para todas as condições ficando a programação demasiado extensa.

Alguém tem alguma ideia que possa resolver o meu problema?

Não sou expert em VBA, mas estou a estudar o seu funcionamento.

Desde já grato pela vossa colaboração

MarcoG

Portugal.

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

marcog, acho q o melhor é vc, na hora de escrever essa linha:

.Bookmarks("TextoIntro").Range.Text = "Convoca-se os docentes, " + strConvocatoriaDe + ", " + "para uma reunião a realizar no dia " + CNomeDia(Day(Calendar1.Value)) + " de " + NomeMes(Month(Calendar1.Value)) + " de " + NomeAno(Year(Calendar1.Value)) + " " + "pelas" + " " + txtHoraActa + ", " + "com a seguinte ordem de trabalhos:"

usar uma linha pra escrever somente até "para uma reunião a realizar no dia ". depois você ativa o negrito e escreve CNomeDia(Day(Calendar1.Value)). ai você desativa o negrito e escreve o resto.

Link para o comentário
Compartilhar em outros sites

  • 0
marcog, acho q o melhor é vc, na hora de escrever essa linha:

.Bookmarks("TextoIntro").Range.Text = "Convoca-se os docentes, " + strConvocatoriaDe + ", " + "para uma reunião a realizar no dia " + CNomeDia(Day(Calendar1.Value)) + " de " + NomeMes(Month(Calendar1.Value)) + " de " + NomeAno(Year(Calendar1.Value)) + " " + "pelas" + " " + txtHoraActa + ", " + "com a seguinte ordem de trabalhos:"

usar uma linha pra escrever somente até "para uma reunião a realizar no dia ". depois você ativa o negrito e escreve CNomeDia(Day(Calendar1.Value)). ai você desativa o negrito e escreve o resto.

Boa noite.

Poderás explicar-me como fazer isso?

Terei de fazer mais um boorkmark?

Agradeço

Um abraço

Link para o comentário
Compartilhar em outros sites

  • 0

marcog, normalmente eu escrevo os textos assim:

Selection.TypeText Text:="texto normal "
Selection.Font.Bold = wdToggle
Selection.TypeText Text:="esse é um texto em negrito"
Selection.Font.Bold = wdToggle
Selection.TypeText Text:=" texto sem negrito"[/code]

agora com bookmark eu não sei exatamente como fazer. você precisa mesmo usar bookmarks??

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...