End With With .Borders(wdBorderRight) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = wdColorAutomatic End With With .Borders(wdBorderTop) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = wdColorAutomatic End With With .Borders(wdBorderBottom) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = wdColorAutomatic End With With .Borders(wdBorderHorizontal) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = wdColorAutomatic End With With .Borders(wdBorderVertical) .LineStyle = wdLineStyleSingle .LineWidth = wdLineWidth050pt .Color = wdColorAutomatic End With .Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone .Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone .Borders.Shadow = False End With 'shuffle the words myWords() = shuffleArray(myWords()) For j = 0 To cardWordNum - 1 With Selection.ParagraphFormat .SpaceBefore = 6 .SpaceAfter = 6 End With Selection.TypeText Text:=myWords(j) If j = cardWordNum - 1 Then Exit For Selection.MoveRight Unit:=wdCell Next j Selection.EndKey Unit:=wdStory Selection.TypeParagraph Selection.TypeParagraph Next i EndUndoSaver donate Exit Sub handleerror: ErrorHandler End Sub Sub ParagraphBreaker() ' ' ParagraphBreaker Macro ' Macro recorded 9/13/2006 by cl ' On Error GoTo handleerror Dim charCount As Integer Dim sentNum As Integer Dim sentText As String Dim sentArray As Variant Dim Answer As VbMsgBoxResult Dim k% If Selection.Characters.count < 2 Then MsgBox "Select with your cursor the text you wish to break and shuffle and then run the macro again!" Exit Sub End If If InStr(Selection.Text, "+") = 0 Then MsgBox "Add plus signs (+) to the text where you want to break and shuffle the text and then run the macro again!" Exit Sub End If Answer = MsgBox("Have you selected with your cursor one or more paragraphs of text containing plus signs ('+') where you want to break and shuffle the text? If no, do so and run the Macro again.", vbYesNo, "Check!") If Answer <> vbYes Then Exit Sub charCount = Selection.Characters.count If charCount < 1 Then MsgBox "Select with the cursor at least 1 paragraph of text that you wish to break and run the macro again!" Exit Sub End If StartUndoSaver Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^p" .Replacement.Text = " " .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "+" .Replacement.Text = "^p" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll If Right(Selection.Text, 1) = Chr(13) Then Selection.MoveEnd Unit:=wdCharacter, count:=-1 End If sentNum = Selection.Paragraphs.count sentText = Selection.Text sentArray = Split(sentText, Chr(13)) sentArray = shuffleArray(sentArray) Selection.Font.Bold = True Selection.TypeText Text:="Number the following lines in the correct order:" Selection.Font.Bold = False ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=sentNum, NumColumns:=2 Selection.Tables(1).Columns(1).PreferredWidthType = wdPreferredWidthPoints Selection.Tables(1).Columns(1).PreferredWidth = CentimetersToPoints(2) For k = 0 To UBound(sentArray) Selection.TypeText Text:="( )" Selection.MoveRight Unit:=wdCell Selection.TypeText Text:=Trim(sentArray(k)) If k = UBound(sentArray) Then GoTo Escape End If Selection.MoveRight Unit:=wdCell Next k Escape: EndUndoSaver donate Exit Sub handleerror: ErrorHandler End Sub