How do I change the color of Strikethrough without changing the color of the text?

Anonymous
2010-10-06T19:10:44+00:00

Hello,

I have Word 2007. I want to achieve red Strikethrough upon normal black text.

I would be grateful to know how to do this, or if, as I suspect, it is not possible, then I would also be interested to know why Microsoft has not provided this quite obviously needed function.

I look forward to hearing from you.

Regards,

Robert.

Microsoft 365 and Office | Word | For home | Windows

Locked Question. This question was migrated from the Microsoft Support Community. You can vote on whether it's helpful, but you can't add comments or replies or follow the question.

0 comments No comments
Answer accepted by question author
Anonymous
2010-11-30T09:36:24+00:00

Crossing something out electronically is a nonsense; period. That the facility is even made available is a questionable use of resources. If you really want to strikethrough in a colour other than the text colour, you must use fields (see http://wordfaqs.mvps.org/Overbar.htm) to overlay your text with struckthrough spaces, and format the spaces in whatever colour you want.

Was this answer helpful?

60+ people found this answer helpful.
0 comments No comments

119 additional answers

Sort by: Oldest
  1. Paul Edstein 82,871 Reputation points Volunteer Moderator
    2017-01-01T11:30:08+00:00

    The only way I can envisage that kind of behaviour occurring is if you have Track Changes 'on'; I am unable to reproduce it otherwise and the macro applies only a red strikethough to the selected text. That said, the quality of the strikethough varies somewhat with the font being used You might get a better result with:

    Sub ColouredStrikethrough()

    Application.ScreenUpdating = False

    ActiveWindow.View.ShowFieldCodes = False

    Dim SngWdth As Single, i As Long

    Dim StrTxt As String, StrTmp As String

    Dim Fld As Field, Rng As Range, SngPos As Single

    With Selection.Range

      While .Characters.Last.Information(wdVerticalPositionRelativeToPage) <> _

        .Characters.First.Information(wdVerticalPositionRelativeToPage)

        .MoveEnd wdCharacter, -1

      Wend

      If .Characters.Last Like "[ " & Chr(160) & vbTab & "]" Then .End = .End - 1

      SngPos = .Characters.Last.Information(wdHorizontalPositionRelativeToPage)

      SngWdth = SngPos - .Characters.First.Previous.Information(wdHorizontalPositionRelativeToPage)

      If SngWdth = 0 Then Exit Sub

      Set Rng = .Duplicate

      Rng.Collapse wdCollapseEnd

      Set Fld = .Fields.Add(Range:=Rng, Type:=wdFieldEmpty, _

        PreserveFormatting:=False, Text:="ADVANCE \l " & Round(SngWdth, 1))

      With Rng

        .End = Fld.Result.End

        .Collapse wdCollapseEnd

        Do While (.Characters.Last.Information(wdHorizontalPositionRelativeToPage) - _

            .Characters.First.Information(wdHorizontalPositionRelativeToPage)) < SngWdth

          .InsertAfter Chr(151)

        Loop

        .Font.ColorIndex = wdRed

        .Font.Bold = True

        .FitTextWidth = SngWdth

      End With

    End With

    Set Fld = Nothing: Set Rng = Nothing

    Application.ScreenUpdating = True

    End Sub

    An advantage of the above code is that it makes no changes to the underlying content (i.e. that content is not added to a field) and the content being struck out can therefore be in any mix of fonts, point sizes, colours, bolding, etc., without the code impacting it. Instead, the code inserts an ADVANCE field that shifts the starting point for the next character to where the first selected character starts, then pads the subtracted space out again with a set of bolded em-dashes whose width it scales down if necessary.

    Was this answer helpful?

    0 comments No comments
  2. Anonymous
    2017-01-01T14:00:07+00:00

    Dear Paul,

    I feel really bad to have taken so much of your time. This time I went ahead and rewrote the previous rendition and now I have:

    Compile error:

    Ambiguous name detected:

    Co|ouredStrikethrough

    I seem to be unable to even delete the macro as the above error loops. FYI

    I am indebted to you, but I (sheepishly) wanted to let you know what's going on.

    Sunday, Jan 1, '17 23PM

    Was this answer helpful?

    0 comments No comments
  3. Paul Edstein 82,871 Reputation points Volunteer Moderator
    2017-01-01T21:36:04+00:00

    You can't have two subs with the same name in a module. Either delete or rename one (or both - e.g. ColouredStrikethroughA, ColouredStrikethroughB).

    Was this answer helpful?

    0 comments No comments
  4. Anonymous
    2017-01-02T00:14:59+00:00

    I just can't get to my macros. Neither adding or removing macros works. It quits with the error message I reported to you!

    Was this answer helpful?

    0 comments No comments