Практическое руководство. Программное форматирование текста в документах
Для форматирования текста в документе Microsoft Office Word можно использовать объект Range.
Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.
В следующем примере выделяется первый абзац документа и изменяются размер и имя шрифта, а также выравнивание.После этого выделяется диапазон и отображается окно сообщения о приостановке перед выполнением следующего раздела кода.В следующем разделе три раза вызывается метод Undo ведущего элемента Microsoft.Office.Tools.Word.Document (для настройки на уровне документа) или класс Microsoft.Office.Interop.Word.Document (для надстройки на уровне приложения).Здесь применяется стиль Normal Indent и выводится окно сообщения о приостановке выполнения кода.Затем в коде один раз вызывается метод Undo, и отображается окно сообщения.
Пример настройки на уровне документа
Форматирование текста с использованием настройки на уровне документа
Следующий пример можно использовать при настройке на уровне документа.Чтобы использовать этот код, запустите его из класса ThisDocument проекта.
Private Sub RangeFormat() ' Set the Range to the first paragraph. Dim rng As Word.Range = Me.Paragraphs(1).Range ' Change the formatting. To change the font size for a right-to-left language, ' such as Arabic or Hebrew, use the Font.SizeBi property instead of Font.Size. rng.Font.Size = 14 rng.Font.Name = "Arial" rng.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter rng.Select() MessageBox.Show("Formatted Range") ' Undo the three previous actions. Me.Undo(Times:=3) rng.Select() MessageBox.Show("Undo 3 actions") ' Apply the Normal Indent style. rng.Style = "Normal Indent" rng.Select() MessageBox.Show("Normal Indent style applied") ' Undo a single action. Me.Undo() rng.Select() MessageBox.Show("Undo 1 action") End Sub
private void RangeFormat() { // Set the Range to the first paragraph. Word.Range rng = this.Paragraphs[1].Range; // Change the formatting. To change the font size for a right-to-left language, // such as Arabic or Hebrew, use the Font.SizeBi property instead of Font.Size. rng.Font.Size = 14; rng.Font.Name = "Arial"; rng.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; rng.Select(); MessageBox.Show("Formatted Range"); // Undo the three previous actions. object numTimes3 = 3; this.Undo(ref numTimes3); rng.Select(); MessageBox.Show("Undo 3 actions"); // Apply the Normal Indent style. object indentStyle = "Normal Indent"; rng.set_Style(ref indentStyle); rng.Select(); MessageBox.Show("Normal Indent style applied"); // Undo a single action. object numTimes1 = 1; this.Undo(ref numTimes1); rng.Select(); MessageBox.Show("Undo 1 action"); }
Пример надстройки уровня приложения
Форматирование текста с использованием надстройки уровня приложения
Следующий пример можно использовать в надстройке уровня приложения.В этом примере используется активный документ.Чтобы использовать этот код, запустите его из класса ThisAddIn проекта.
Private Sub RangeFormat() ' Set the Range to the first paragraph. Dim document As Word.Document = Me.Application.ActiveDocument Dim rng As Word.Range = document.Paragraphs(1).Range ' Change the formatting. To change the font size for a right-to-left language, ' such as Arabic or Hebrew, use the Font.SizeBi property instead of Font.Size. rng.Font.Size = 14 rng.Font.Name = "Arial" rng.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter rng.Select() MessageBox.Show("Formatted Range") ' Undo the three previous actions. document.Undo(Times:=3) rng.Select() MessageBox.Show("Undo 3 actions") ' Apply the Normal Indent style. rng.Style = "Normal Indent" rng.Select() MessageBox.Show("Normal Indent style applied") ' Undo a single action. document.Undo() rng.Select() MessageBox.Show("Undo 1 action") End Sub
private void RangeFormat() { // Set the Range to the first paragraph. Word.Document document = this.Application.ActiveDocument; Word.Range rng = document.Paragraphs[1].Range; // Change the formatting. To change the font size for a right-to-left language, // such as Arabic or Hebrew, use the Font.SizeBi property instead of Font.Size. rng.Font.Size = 14; rng.Font.Name = "Arial"; rng.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter; rng.Select(); MessageBox.Show("Formatted Range"); // Undo the three previous actions. object numTimes3 = 3; document.Undo(ref numTimes3); rng.Select(); MessageBox.Show("Undo 3 actions"); // Apply the Normal Indent style. object indentStyle = "Normal Indent"; rng.set_Style(ref indentStyle); rng.Select(); MessageBox.Show("Normal Indent style applied"); // Undo a single action. object numTimes1 = 1; document.Undo(ref numTimes1); rng.Select(); MessageBox.Show("Undo 1 action"); }
См. также
Задачи
Практическое руководство. Программное определение и выделение диапазонов в документах
Практическое руководство. Программная вставка текста в документы Word
Практическое руководство. Программный поиск и замена текста в документах
Ссылки
SizeBi