Je voudrais trouver le texte qui se trouve entre les caractères < et>, puis transformer tout texte trouvé en cas "normal", où la première lettre de mot est en majuscule. Voici ce que j'ai jusqu'ici:Word VBA - Trouver le texte entre délimiteurs et convertir en minuscules
Function findTextBetweenCarots() As String
Dim strText As String
With Selection
.Find.Text = "<" ' what about <[^0-9]+> ?
.Find.Forward = True
.Find.Wrap = wdFindContinue
End With
Selection.Find.Execute
' Application.Selection. ' how do I get the text between the other ">"?
findCarotSymb = Application.Selection.Text
End Function
Ou, est-il une meilleure façon de le faire? J'ai également abordé le problème en utilisant la bibliothèque VBScript Regex 5.5, qui fonctionnait sur des documents simples, mais pas sur certains documents avec des tables complexes. Par exemple, en essayant simplement de mettre en gras le texte (pour plus de simplicité):
Sub BoldUpperCaseWords()
Dim regEx, Match, Matches
Dim rngRange As Range
Set regEx = New RegExp
regEx.Pattern = "<[^0-9]+>"
regEx.IgnoreCase = False
regEx.Global = True
Set Matches = regEx.Execute(ActiveDocument.Range.Text)
For Each Match In Matches
ActiveDocument.Range(Match.FirstIndex, Match.FirstIndex + Len(Match.Value)).Bold = True
Next
End Sub
ne fonctionnerait pas dans un document avec des tables. En fait, il ne serait pas même le texte en gras correct (le texte entre le <>
. Cela me conduit à croire que j'ai une question plus générale ici que je suis absent.
je reçois le même résultat. Il y a quelque chose de particulier au sujet des documents que je Je l'utilise sur. Ils sont 4 tables de colonnes, si cela aide. Le plus que je peux faire est de fournir une capture d'écran d'un document d'exemple lors de ma prochaine édition. – JohnZaj
imprime 'ActiveDocument.Range.Text' pour voir s'il contient tout le texte. Vérifiez également si les propriétés 'regEx' gèrent du texte multiligne. (si possible, essayez d'itérer les lignes du tableau et d'appliquer regex à chaque colonne) –
regEx.MultiLine = True 'devrait fonctionner. Maintenant, j'essaie de parcourir les tables ... – JohnZaj