View Single Post
 
Old 09-16-2020, 06:19 PM
Guessed's Avatar
Guessed Guessed is offline Windows 10 Office 2016
Expert
 
Join Date: Mar 2010
Location: Canberra/Melbourne Australia
Posts: 3,977
Guessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant future
Default

Here is one approach. It assumes you have an "Answer" style in your document to apply to the correct answers. You can then have a secondary macro that toggles the "Answer" style as being same/different to the Normal style if you wanted to show or hide the answers.
Code:
Sub MarkAnswers()
  Dim lngPara As Long, iOffset As Integer, sAnswer As String
  For lngPara = 1 To ActiveDocument.Paragraphs.Count
    If Left(ActiveDocument.Paragraphs(lngPara).Range.Text, 5) = "Ans: " Then
      sAnswer = ActiveDocument.Paragraphs(lngPara).Range.Words(3)
      iOffset = Asc(sAnswer) - 69
      Debug.Print lngPara, sAnswer, iOffset
      ActiveDocument.Paragraphs(lngPara + iOffset).Range.Style = "Answer"
    End If
  Next lngPara
End Sub

Sub ToggleAnswerShow()
  Dim aSty As Style
  With ActiveDocument.Styles("Answer")
    If .Font.Bold = ActiveDocument.Styles("Normal").Font.Bold Then
      .Font.Bold = True
      .Font.ColorIndex = wdGreen
    Else
      .Font = ActiveDocument.Styles("Normal").Font
    End If
  End With
End Sub
__________________
Andrew Lockton
Chrysalis Design, Melbourne Australia
Reply With Quote