Листинг 4. Использование метода InsertFile

Вставка текста

Удаление текста

Метод Delete позволяет удалить текст. Вызванный без параметров, он удаляет вызывающий его объект Range или Selection. Если он применен в форме Delete(Unit,Count), удаляется часть текста в указанной области. Параметр Unit задает единицы, но при удалении возможны только два значения: wdWord и wdCharacter. Параметр Count задает количество удаляемых единиц. Если область стянута в точку, удаляются символы перед точкой вставки или после нее, в зависимости от знака параметра Count. Вот несколько примеров:

'Удаляется текст в области объекта myRangeMyRange.Delete'Удаляются первые три слова из области myRangelMyRangel.Delete Unit:= wdWord,Count:=3'0бласть стягивается а точкуMRangel.Collapse Direction := wdCollapseStart'Удаляются три первых слова из области, предшествующей myRangelMyRangel.Delete Unit:= wdWord,Count:=-3

Группа методов Insert объектов Range и Selection позволяет осуществлять вставку в документ. Для вставки текста используются методы InsertBefore(Text) и InsertAfter(Text). Параметр Text типа String задает текст, вставляемый до или после области, заданной объектами Range или Selection. После вставки текста область автоматически расширяется, включая в себя добавляемый текст. Вот пример вставки нового абзаца в начало документа:

Dim myRange As Range Set myRange = ActiveDocument.Range (Start:=0, End:=0)myRange.Text = "дорогой " myRange.InsertBefore "Мой " myRange.InsertAfter "друг! " myRange.InsertParagraphAfter

Свойство Text позволяет заменять текст в выделенной области, поэтому не надо вызывать метод Insert(Text) – лучше использовать свойство. Методы InsertBefore и InsertAfter безопасны, так как при добавлении текста содержимое области не изменяется. При вставке внутрь области, например при использовании метода InsertSymbol или InsertParagraph, заменяется содержимое области. Эта вроде бы безобидная программка сотрет все содержимое документа, заменив его пустым абзацем:

Set myRange = ActiveDocument.Range myRange.InsertParagraph

Говоря о методах вставки текста, нельзя не упомянуть о таком мощном методе, как InsertFile – он позволяет вставлять не только текст или таблицу Excel, но и целый документ, хранящийся в файле. В листинге 4 (см. здесь) приведен простой пример вызова метода InsertFile, при котором в начало активного документа вставляется существующий документ.

Public Sub test() Dim myRange As Range Dim myPath As String With ActiveDocument myPath = .Path Set myRange = .Range(Start:=0,End:=0) myRange.InsertFile "d:\Test\DocFive" End With End Sub