public static void DeleteParagraphFromRange(this Wd.Range range)
 {
     Wd.Range prev = range.Duplicate;
     try
     {
         range.Expand(Wd.WdUnits.wdParagraph);
         if (!range.ContainsTableCell())
             range.Delete();
     }
     catch
     {
         prev.Delete();
     }
 }
        public static Wd.Range MoveOutOfContentControl(this Wd.Range range, Wd.WdCollapseDirection collapse = Wd.WdCollapseDirection.wdCollapseEnd)
        {
            Wd.ContentControl control = range.GetSurroundingContentControl();
            if (control != null)
                if (collapse == Wd.WdCollapseDirection.wdCollapseStart)
                {
                    if (range.Start >= control.Range.Start)
                        range.Start = control.Range.Start - 1;
                    if (range.End >= control.Range.Start)
                        range.End = control.Range.Start - 1;
                }
                else
                {
                    range.Start = control.Range.End;
                    if (range.Start <= control.Range.End)
                        range.Start = control.Range.End + 1;
                    if (range.End <= control.Range.End)
                        range.End = control.Range.End + 1;
                }
            if (range.ContainsTableCell())
                range.MoveEnd(Wd.WdUnits.wdCharacter, -1);

            //if (range.InContentControlOrContainsControls()) // Then it's because the Content Control is the first thing in the document
            //{
            //    range.Application.Selection.HomeKey(Wd.WdUnits.wdStory);
            //    range = range.Application.Selection.Range;
            //}
            return range;
        }