Листинг 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