2010-12-16 152 views
1

Je crée un document Word de plusieurs pages chaque semaine. Je copie du texte à partir d'un PDF et le colle dans un document Word, puis je formate le texte que j'ai collé.Utilisation de VBA pour que le mot sélectionne le texte et le mette en gras

Cela prend beaucoup de temps et je voudrais l'automatiser.

J'ai besoin d'une macro ou d'un code pour sélectionner un texte spécifique, puis mettez ce texte en gras. Le texte spécifique que j'ai besoin de gras est ce que j'appelle un code de ferraille.

Il existe 60 codes différents. Par exemple "FIPS" ou "LILL".

Répondre

3

Quelque chose comme ceci:

Sub A() 
' 
' a Macro 
' 
' 
Dim A(3) As String 

A(1) = "code1" 
A(2) = "code2" 
A(3) = "code3" 

For i = 1 To 3 
    Selection.Find.ClearFormatting 
    Selection.Find.Replacement.ClearFormatting 
    With Selection.Find 
     .Forward = True 
     .Wrap = wdFindStop 
     .Format = False 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchWildcards = False 
     .MatchSoundsLike = False 
     .MatchAllWordForms = False 
     .Replacement.Font.Bold = True 

     .Execute FindText:=A(i), ReplaceWith:=A(i), Format:=True, _ 
     Replace:=wdReplaceAll 

    End With 
Next i 
End Sub 

HTH!

Modifier

Pour passer les montants en dollars en gras

Sub a() 
' 
' a Macro 
' 
' 
    Selection.Find.ClearFormatting 
    Selection.Find.Replacement.ClearFormatting 
    Selection.Find.Replacement.Font.Bold = True 
    With Selection.Find 
     .Text = "$([0-9.,]{1,})" 
     .Replacement.Text = "" 
     .Forward = True 
     .Wrap = wdFindContinue 
     .Format = True 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchAllWordForms = False 
     .MatchSoundsLike = False 
     .MatchWildcards = True 
    End With 
    Selection.Find.Execute 
    Selection.Find.Execute Replace:=wdReplaceAll 
End Sub 
+0

Cela a fonctionné parfaitement! Vous êtes le meilleur merci. – Aaron

+0

Ok, encore une chose. Je veux des montants en gras sur le même document. Pourrais-je le faire chercher un signe dollar, puis sélectionner jusqu'à ce qu'il y ait un espace dans le document? Chaque montant de dollar sur le document commence par un signe de dollar ainsi j'ai pensé que ce serait la chose facile à faire. – Aaron

+0

@Aaron Travailler sur le "signe du dollar" ... –

0

Je suggère d'enregistrer une macro.
Ensuite, faites toutes les modifications et le formatage.
Enfin, regardez le code de la macro et voyez comment elle l'a fait.

La seule chose que vous devez comprendre est de savoir comment vous voulez logiquement trouver le texte que vous voulez en gras.
Est-ce une ligne spécifique? Est-ce au début d'un mot connu?

Une fois que vous avez répondu, vous pouvez le combiner avec le code de la macro et automatiser la tâche.

+0

Je pensais faire un tableau de chaînes avec chacun des codes de ferraille. Peut-être que je pourrais utiliser trouver remplacer pour rechercher chaque code de ferraille dans le document, puis le rendre en gras. Dim ScrapCodes as String() = 'tous les codes de ferraille Dim Compteur comme nombre entier = 0 faire jusqu'à ce que compteur>' le nombre de codes 'compteur utiliser pour appeler chaque code de ferraille dans le tableau ' chercher le code de ferraille 'make scrap code bold ' ajouter 1 au compteur fin Cela fait longtemps que je n'ai pas programmé, mais c'est ce que je pensais qui aurait du sens. – Aaron