КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Листинг 6. Создание и добавление картинок в документ
Объекты класса Shape Таблицы Листинг 3. Еще один пример выделения поддокумента из главного документа Public Sub SelectSubDoc()Dim sect As Section With ActiveDocumentDebug.Print "Число поддокументов =",.Subdocuments.CountFor Each sect In.Sections Debug.Print sect.Range.Characters.CountNext‘Создание поддокумента из последнего разделаN =.Sections.Count‘Раздел должен иметь заголовок (выбрать из имеющихся стилей).Subdocuments.AddFromRange Range:=.Sections(N).Range Debug.Print "Число поддокументов =",.Subdocuments.CountEnd WithEnd SubНапример, активный документ состоит из двух разделов и не имеет поддокументов. Метод AddFromRange класса SubDocuments создает поддокумент, выделяя из главного документа область, заданную параметром Range. В данном примере под документом объявляется последний раздел. Он удаляется из главного документа и сохраняется в отдельном файле. В главном документе остается ссылка на поддокумент. При желании его всегда можно слить с главным, но с ним можно работать и как с независимым документом. Во многих документах встречаются таблицы. Они могут быть разных типов: Tables (Table), TablesOfAuthoritiesCategories (T.O.A.C), TablesOfAuthorities (TableOfAuthoritie), TablesOfContents (T.O.C.), TablesOfFigures (TablesOfFigure). Класс Table определяет "обычные" таблицы с произвольным количеством строк и столбцов и произвольным заполнением полей. Остальные классы задают таблицы специального вида. Рассмотрим следующий пример. В документ (Doc) вставляются две таблицы. В начало документа вставляется оглавление – элемент коллекции TablesOfContents. В конец документа вставляется обычная таблица, после чего она заполняется некоторыми числами и форматируется. В листинге 4 (см. здесь) приведена процедура для решения данной задачи. Листинг 4. Создание таблиц в документе Public Sub ExampleTable() ‘Создание таблиц в документе Documents("Doc.doc").Activate With ActiveDocument 'Создание оглавления документа (д.б.заголовки).TablesOfContents.Add.Range(Start:=0, End:=0) ‘Создание обычной таблицы myTable в конце документа Dim myTable As Table Dim N As Integer.Paragraphs.Add N =.Paragraphs. Count Set myTable =.Tables.Add (Range:=.Paragraphs(N).Range, _ NumRows:=2, NumColumns:=3) ‘Заполнение таблицы For I =1 To myTable.Rows.Count For J=1 To myTable.Columns.Count myTable.Cell(I, J).Range.InsertAfter I + J Next J Next I myTable.AutoFormat End With End SubРассмотрим теперь более подробно работу с еще одной из специальных таблиц, содержащей ссылки на иллюстрации, используемые в документе. В документах Word используется большое число иллюстраций – таблиц, графиков, диаграмм. Зачастую наряду с оглавлением документа полезно иметь аналоги оглавления, содержащие ссылки на иллюстративные элементы документа. Для этой цели и используются специальные таблицы – объекты класса TableOfFigures. В листинге 5 (см. здесь) приведена процедура, создающая две такие таблицы, первая из которых содержит ссылки на графики, вторая – на таблицы. Листинг 5. Создание специальных таблиц в документе Public Sub WorkWithTablesOfFigures() ‘Работа с таблицами ссылок на иллюстрации документа Dim DocPath As String Dim myr As Range Dim ToF As TableOfFigures Dim capt As CaptionLabel ‘Открываем и активизируем документ DocThree ‘DocPath = Documents("DocOne").Path ‘Documents.Open (DocPath & "\Docthree") ‘Documents("Docthree").Activate With ActiveDocument Set myr = Selection.Range myr.Select ‘Создаем таблицы ссылок на графики и таблицы ‘Оба заголовка должны быть элементами коллекции CaptionLabels.TablesOfFigures.Add Range:=myr, Caption:="Рисунок".TablesOfFigures.Add Range:=myr, Caption:="Таблица" For Each ToF In.TablesOfFigures Debug.Print ToF.Caption Next ToF For Each capt In Application.CaptionLabels Debug.Print capt.Name Next capt End With End SubЗаметьте, что заголовки иллюстративных элементов, попадающих в соответствующие таблицы, должны быть "настоящими" заголовками и содержаться в коллекции CaptionLabels. Shapes (Shape), InlineShapes (InlineShape) – эти две коллекции с их элементами позволяют добавлять в документ рисунки и не только. ActiveX-объекты и OLE-объекты также являются элементами этих коллекций. Word предоставляет широкие возможности для создания рисунков в его документах. При работе вручную рисунки в документах появляются по-разному: · можно вставлять уже готовые рисунки в текст документа, можно также вставить элемент управления Image и связать с ним готовый рисунок; · можно воспользоваться широким набором инструментов рисования, собранных на панели Drawing (Рисование). С помощью этих инструментов можно вставлять готовые рисованные объекты самых разных типов, начиная с прямоугольников и овалов, кончая блок-схемами, фигурными стрелками и звездами. Большие возможности представляют инструменты Curve (Кривая), FreeForm (Полилиния), Scribble (Рисованная Кривая). Чтобы добраться до них, необходимо на панели Drawing выбрать вкладку AutoShapes (Автофигуры), затем Lines (Линии), а затем нажать нужную кнопку. В этот момент у пользователя "появляется" обычный карандаш, с помощью которого можно нарисовать любой рисунок произвольной (свободной) формы и линией выбранной толщины. После чего весь рисунок можно закрасить (залить) нужным цветом. Созданный рисунок можно вращать, растягивать или сжимать, в общем, выполнять основные операции, допустимые в графических редакторах. Все, что можно делать вручную, можно делать и программно, поскольку есть соответствующие объекты со своими свойствами и методами. Все рисунки, размещаемые в документе в слое "рисования", с объектной точки зрения являются объектами классов Shape или InlineShape. ActiveX-объекты и OLE-объекты, рисованные тексты, созданные средствами WordArt, также являются элементами этих коллекций. Напомним, что элементы управления, размещаемые непосредственно в документе, являются OLE-объектами. Но заметьте, что одновременно они являются объектами класса Shape, точнее, InlineShape. Так что при размещении в документе, например, командной кнопки или элемента Image, как бы оно не выполнялось – вручную или программно – в коллекции InlineShapes появится новый элемент. Объекты разных типов, находящиеся в этих коллекциях, объединяет то, что всех их можно отнести к рисованным объектам и размещаются они в документе в слое рисования. Коллекции Shapes и InlineShapes близки по своей природе. Как правило, при программном создании объектов многие из них можно поместить по желанию либо в коллекцию Shapes, либо – в InlineShapes. Отличаются элементы этих коллекций тем, как они привязаны к документу – первые могут свободно перемещаться по нему, вторые жестко привязаны к заданной области документа и ведут себя подобно символам текста документа. Элементы той и другой коллекции имеют метод Convert (ConvertToShape, ConvertToInlineShape), позволяющий конвертировать объект класса InlineShape в объект класса Shape и обратно. Коллекция Shapes содержит больше типов элементов, чем коллекция InlineShapes, поэтому преобразование не всегда возможно. Основным методом при работе с этими коллекциями, как и с всякими другими, является метод Add, а точнее, группа методов Add, позволяющая создавать новые объекты и добавлять их в коллекцию. Рассмотрим несколько модификаций метода Add, используемых при работе с этими коллекциями: 1. Метод AddShape, первый параметр которого задает тип добавляемого объекта. Поскольку типов рисованных объектов достаточно много, то соответствующая константа, задающая тип, может принимать около сотни различных значений. По этой причине чаще всего пользуются не этим общим методом создания Shape объектов, а частными методами, позволяющими создавать Shaре-объекты определенного типа. 2. Методы AddCallout, AddCurve, AddLine, AddPolyline, BuildFreeForm позволяют создавать Shape-объекты, аналогичные тем, что создаются вручную при работе с инструментами панели Drawing. Последний из этих методов соответствует двум уже упоминавшимся инструментам – FreeForm и Scribble. При работе с данным методом создается объект класса FreeForm, который затем преобразуется в объект класса Shape. 3. Метод AddOleObject используется для создания OLE-объектов, в частности для создания элементов управления. 4. Метод AddOleControl используется для создания ActiveX-объектов. 5. Метод AddTextBox позволяет создать текстовые окна. 6. Метод AddPicture позволяет добавлять рисунки в документ. 7. Метод AddTextEffect позволяет создавать художественные надписи так, как это делает Word Art. В листингах 6 (см. здесь) и 7 (см. здесь) предложено решение следующей задачи. В документ вставляется два рисунка. Один из них будет добавлен в коллекцию Shapes, второй – в коллекцию InlineShapes. Заметьте, что во втором случае у метода AddPicture есть параметр Range, позволяющий "привязать" рисунок к определенному месту документа. Первый же рисунок можно свободно передвигать по документу. Public Sub Picture() ‘Создание и добавление картинок в документ Documents("Doc.doc").Activate With ActiveDocument Dim DocPath As String DocPath =.Path.Shapes.AddPicture FileName:=DocPath & "\dog.bmp" Dim N As Integer.Paragraphs.Add N =.Paragraphs.Count InlineShapes.AddPicture FileName:=DocPath & "\cat.bmp", _ Range:=.Paragraphs(N).Range End With End Sub
Дата добавления: 2014-01-05; Просмотров: 503; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |