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.
Pergunta
vieira_mar
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:
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: 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: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 kuroiAdicionar tag CODE
Link para o comentário
Compartilhar em outros sites
3 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.