![]() |
|
#1
|
|||
|
|||
![]()
So after messing about, and finding bits of code online, i've managed to come up with this...
I hope it helps others looking to do the same thing. ![]() ---------------------------------------------------------------------------------------- Sub wordslistChange() Dim avar As Variant avar = Split(Replace(ActiveDocument.Range.Text, vbCr, " ")) For i = LBound(avar) To UBound(avar) i = i + 1 'MsgBox avar(i) With Selection.Find .ClearFormatting .Text = avar(i) On Error Resume Next .MatchCase = True .MatchWholeWord = True .Replacement.ClearFormatting .Replacement.Text = avar(i) .Replacement.Font.Color = wdColorRed 'change colour as required .Forward = True .Wrap = Word.WdFindWrap.wdFindContinue .Execute Replace:=Word.WdReplace.wdReplaceOne End With Next i End Sub ------------------------------------------------------------------------------------------ This basically populates the array and then does the odd even colour change magic. Have fun people and feel free to mod the code to make it even more efficient. Thank you ![]() Last edited by Harvi007; 08-05-2022 at 10:32 PM. |
#2
|
|||
|
|||
![]()
Stop press...
so I've just checked my text and although it should work as expected, there is a slight issue... It seems to colour the last word on a line and the first word on the line immediately after in the same colour when it should be true Odd Even colouring. Any help on this would be much appreciated.. ![]() So close yet so far ![]() Edit:: I put a msgbox in the code to see what the array was outputting and saw that the array is adding the newline return in the middle of the 2 words making them show as one. A sample of this is 'close.□Then' The □ is the new line or carriage return. For now I can get around this by changing the page size to that the next word goes to the next line without adding a carriage return, but this messes up the formatting. Please help ![]() Edit Again:: So I've narrowed it down to the way the array is being split with the code avar = Split(Replace(ActiveDocument.Range.Text, vbCr, " ")) I've tried to replace the vbCr with both vbCrLf and vbLf with no avail. The carriage return used in the text is shift+enter if that helps. ![]() Last edited by Harvi007; 08-05-2022 at 10:38 PM. |
![]() |
Tags |
macro font colour, vba change colour |
Thread Tools | |
Display Modes | |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Word Macro Recorder does not record font colour selection | Ramkay | Word | 1 | 12-02-2020 07:48 AM |
![]() |
thomasoj | Word VBA | 3 | 01-15-2020 06:26 AM |
![]() |
RealmOfCOnfusion | Outlook | 1 | 06-30-2016 09:55 PM |
![]() |
meileetan | Project | 3 | 09-12-2012 07:09 AM |
![]() |
Davidoff78 | Word VBA | 1 | 06-28-2012 05:23 PM |