Программные ограничения ведущих элементов и элементов управления ведущего приложения
Каждый ведущий элемент и элемент управления ведущего приложения создается, чтобы работать аналогично собственному объекту Microsoft Office Word или Microsoft Office Excel, с дополнительными функциями.Но существует ряд фундаментальных различий между поведением во время выполнения ведущих элементов и элементами управления ведущего приложения с одной стороны и собственных объектов Office с другой стороны.
Общие сведения о ведущих элементах и элементах управления ведущего приложения см. в разделе Общие сведения о ведущих элементах и элементах управления ведущего приложения.
Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для следующих приложений: Excel 2013 и Excel 2010; Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.
Ведущие элементы, созданные программными средствами
При программном создании или открытии документа, книги или листа во время выполнения с использованием объектной модели Word или Excel элемент не является ведущим.Вместо этого новый объект является собственным объектом Office.Например, при использовании метода Documents.Add для создания нового документа Word во время выполнения он будет собственным объектом Microsoft.Office.Interop.Word.Document object rather than a Microsoft.Office.Tools.Word.Document host item.Аналогично, при создании во время выполнения нового листа с помощью метода Worksheets.Add разработчик получает собственный объект Microsoft.Office.Interop.Excel.Worksheet, а не ведущий элемент Microsoft.Office.Tools.Excel.Worksheet.
В проектах уровня документа нельзя создать ведущие элементы во время выполнения.Ведущие элементы могут быть созданы в проектах уровня документа только во время разработки.Дополнительные сведения см. в разделах Ведущий элемент документа, Ведущий элемент книги и Ведущие элементы листа.
В проектах уровня приложения можно создать ведущие элементы Microsoft.Office.Tools.Word.Document, Microsoft.Office.Tools.Excel.Workbook или Microsoft.Office.Tools.Excel.Worksheet во время выполнения.Дополнительные сведения см. в разделе Расширение документов Word и книг Excel в надстройках уровня приложения во время выполнения.
Элементы управления ведущего приложения, создаваемые программными средствами
Во время выполнения можно программными средствами добавлять элементы управления ведущего приложения в ведущий элемент Microsoft.Office.Tools.Word.Document или Microsoft.Office.Tools.Excel.Worksheet.Дополнительные сведения см. в разделе Добавление элементов управления в документы Office во время выполнения.
Нельзя добавлять элементы управления ведущего приложения в собственный документ Microsoft.Office.Interop.Word.Document или лист Microsoft.Office.Interop.Excel.Worksheet.
Примечание |
---|
Следующие элементы управления ведущего приложения не могут быть добавлены программными средствами в листы и документы: XmlMappedRange, XMLNode и XMLNodes. |
Основные сведения о различиях между типами ведущих элементов, элементов управления ведущего приложения и собственных объектов Office
Для каждого ведущего элемента и элемента управления ведущего приложения существует собственный объект Microsoft Office Word или Microsoft Office Excel.Для доступа к основному объекту используется свойство InnerObject ведущего элемента или элемента управления ведущего приложения.Однако невозможно привести собственный объект Office к соответствующему ведущему элементу или элементу управления ведущего приложения.При попытке привести собственный объект Office к типу ведущего элемента или элемента управления ведущего приложения возникает исключение InvalidCastException.
Существует несколько скриптов, в которых различия между типами ведущих элементов, элементов управления ведущего приложения и базовых собственных объектов Office могут повлиять на код.
Передача элементов управления ведущего приложения в методы и свойства
В приложении Word невозможно передать элемент управления ведущего приложения в метод или свойство, для которого требуется собственный объект Word в качестве обязательного параметра.Для возвращения к основному собственному объекту Word необходимо использовать свойство InnerObject элемента управления ведущего приложения.Например, можно передать объект Microsoft.Office.Interop.Word.Bookmark в метод с помощью передачи в метод свойства InnerObject элемента управления ведущего приложения Microsoft.Office.Tools.Word.Bookmark.
В Excel, необходимо использовать свойство InnerObject элемента управления ведущего приложения для передачи элемента управления ведущего приложения методу или свойству, когда метод или свойство ожидающие основной объект Excel.
В следующем примере создается элемент управления Microsoft.Office.Tools.Excel.NamedRange и передается в метод AutoFill.Код использует свойство InnerObject именованного диапазона для возврата основного объекта Office Microsoft.Office.Interop.Excel.Range, требующегося для метода AutoFill.
Me.Range("A1").Value2 = "Monday"
Me.Range("A2").Value2 = "Tuesday"
Dim dayRange As Microsoft.Office.Tools.Excel.NamedRange = _
Me.Controls.AddNamedRange(Me.Range("A1", "A7"), "dayRange")
Me.Range("A1", "A2").AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays)
this.Range["A1"].Value2 = "Monday";
this.Range["A2"].Value2 = "Tuesday";
Microsoft.Office.Tools.Excel.NamedRange dayRange =
this.Controls.AddNamedRange(this.Range["A1", "A7"], "dayRange");
this.Range["A1", "A2"].AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays);
Возвращаемые типы собственных методов и свойств Office
Большинство методов и свойств ведущих элементов возвращают собственные объекты Office, лежащие в основе ведущих элементов.Например, свойство Parent элемента управления ведущего приложения NamedRange в Excel возвращает объект Microsoft.Office.Interop.Excel.Worksheet, а не ведущий элемент Microsoft.Office.Tools.Excel.Worksheet.Аналогично, свойство Parent элемента управления ведущего приложения RichTextContentControl в Word возвращает объект Microsoft.Office.Interop.Word.Document, а не ведущий элемент Microsoft.Office.Tools.Word.Document.
Доступ к коллекциям элементов управления ведущего приложения
Visual Studio Tools for Office (cреда выполнения) не предоставляет отдельных коллекций для каждого типа элементов управления ведущего приложения.Вместо этого используйте свойство Controls ведущего элемента для перебора всех управляемых элементов управления (как элементов управления ведущего приложения или элементов управления Windows Forms) в документе или листе, а затем найдите элементы, которые соответствуют типу нужного элемента управления ведущего приложения.В следующем примере кода рассматривается каждый элемент управления в документе Word и определяется, является ли элемент управления Microsoft.Office.Tools.Word.Bookmark.
Dim targetControl As Object
For Each targetControl In Me.Controls
If TypeOf (targetControl) Is Microsoft.Office.Tools.Word.Bookmark Then
Dim bookMark As Microsoft.Office.Tools.Word.Bookmark = _
CType(targetControl, Microsoft.Office.Tools.Word.Bookmark)
' Do some work with the book mark here.
End If
Next
foreach (object targetControl in this.Controls)
{
Microsoft.Office.Tools.Word.Bookmark bookMark =
targetControl as Microsoft.Office.Tools.Word.Bookmark;
if (bookMark != null)
{
// Do some work with the bookmark here.
}
}
Дополнительные сведения о свойстве Controls ведущих элементов управления см. в разделе Добавление элементов управления в документы Office во время выполнения.
Объектные модели Word и Excel включают свойства, которые предоставляют коллекции собственных элементов управления для документов и листов.С помощью этих свойств нельзя получить доступ к управляемым элементам управления.Например, невозможно перечислить каждый Microsoft.Office.Tools.Word.Bookmark элемент управления ведущего приложения с помощью свойства Bookmarks объекта Microsoft.Office.Interop.Word.Document или свойства Bookmarks объекта Microsoft.Office.Tools.Word.Document.Эти свойства включают в документ только элементы управления Microsoft.Office.Interop.Word.Bookmark; они не включают в документ элементы управления ведущего приложения Microsoft.Office.Tools.Word.Bookmark.
См. также
Ссылки
Основные понятия
Общие сведения о ведущих элементах и элементах управления ведущего приложения
Автоматизация Word с помощью расширенных объектов