VBA. Лабораторна робота 3 Копирование текста 'Текстовый буфер задается обычной строкой Public TextBuffer As String Public Sub CopyText() 'Этот макрос копирует выделенный текст в буфер TextBuffer = Selection.Text End Sub Public Sub PasteText() 'Этот макрос выполняет операцию, обратную копированию 'Текст из буфера вставляется в точку, заданную курсором Selection.Text = TextBuffer End Sub Копирование текста и шрифта 'Буфер, сохраняющий текст и шрифт Public Type TextAndFont BufText As String BufFont As Font End Type Public TaFBuffer As TextAndFont Public Sub CopyTextAndFont() 'Этот макрос копирует выделенный текст и шрифт в буфер Set TaFBuffer.BufFont = Selection.Font TaFBuffer.BufText = Selection.Text End Sub Public Sub PasteTextAndFont() 'Этот макрос выполняет операцию, обратную копированию
Selection.Font.Name = TaFBuffer.BufFont.Name Selection.Font.Bold = TaFBuffer.BufFont.Bold Selection.Font.Italic = TaFBuffer.BufFont.Italic Selection.Font.Size = TaFBuffer.BufFont.Size 'Текст из буфера с указанными параметрами шрифта 'вставляется в точку, заданную курсором. Selection.Text = TaFBuffer.BufText End Sub Копирование объекта 'Буфер, позволяющий сохранять объект Public ObjectBuffer As Range Public Sub CopyObject() 'Этот макрос копирует выделенный объект в буфер Set ObjectBuffer = Selection.Range End Sub Public Sub PasteObject() 'используется техника копирования через стандартный буфер! ObjectBuffer.Copy Selection.PasteSpecial
End Sub Коллекции объекта Document Bookmarks Characters (Range) CommandBars Comments DocumentProperties Endnotes Fields Footnotes FormFields Frames Hyperlinks Indexes InlineShapes HorizontalLineFormat ListParagraphs Lists ListParagraphs Range ListTemplates ListLevels Font Paragraphs ProofreadingErrors (Range) Revisions ReadabilityStatistics Scripts Sections Sentences (Range) Shapes StoryRanges (Range Styles Subdocuments Tables TablesOfAuthoritiesCategories (TableOfAuthoritiesCategory) TablesOfAuthorities (TableOfAuthorities) TablesOfContents (TableOfContents) TablesOfFigures (TableOfFigures) Variables Versions Windows Words (Range) ‘заголовок окна Word задается свойством Caption этого объекта Application.Caption = “My caption ” Application.ActiveWindow.WindowState = wdWindowStateMaximize Application.ActiveDocument.Save MsgBox Application.ActivePrinter Application.CommandBars.LargeButtons = True Application.DisplayScrollBars = False Application.DisplayStatusBar = False Application.Options.AllowDragAndDrop = True Application.Options.SaveInterval = 10 Application.StatusBar = "Run macros, please wait..." Application.Quit wdSaveChanges Dim MyDoc As Document Set MyDoc = Documents.Add("C:\MSOffice\Templates\My.dot") Set MyDoc = Documents.Open("C:\My documents\MyDoc1.doc") Documents(“Документ1”).Close Documents(4).Activate ActiveDocument.PrintOut Options.SendMailAttach = True ThisDocument.SendMail Documents.Close wdPromptToSaveChanges ActiveDocument.Close wdDoNotSaveChanges ActiveDocument.Save ActiveDocument.SaveAs "C:\Мои документы\MyDoc2.doc" Операції із виділеним текстом ActiveDocument.Range(Start:=0, End:=9).Bold = True ActiveDocument.Range(Start:=0, End:=0).InsertBefore "АБВГД" Перевірка правопису If Not CheckSpelling(ActiveDocument.Sections(1).Range) Then MsgBox "Обнаружена ошибка!" End If Встановлення верхнього колонтитула ActiveDocument.Sections(2).Headers(wdHeaderFooterFirstPage).Range = “Глава 2” Paragraphs, Sentences, Words та Characters Семейство Paragraphs представляет все абзацы документа, семейство Sentences — все предложения, в семействе Words содержатся слова, а в семействе Characters — символы до- кумента. Все эти семейства устроены одинаковым образом. Властивості First і Last К их членам можно обращаться по номерам, свойства First и Last указывают на, соответст- венно, первый и последний элементы. Властивість Count Свойстве Count содержится число элементов в семействе. И для всех этих семейств в любом случае в результате возвращается объект типа Range. Alignment Задать выравнивание по правому краю для первого абзаца: ActiveDocument.Paragraphs(1).Alignment = wdAlignParagraphRight Створити навколо абзацу рамку заданого стилю Заключить первый абзац в рамку стиля 3D: ActiveDocument.Paragraphs.First.Borders.OutsideLineStyle = wdLineSyleEmboss3D Вставить текст после последнего абзаца: ActiveDocument.Paragraphs.Last.Range.InsertAfter "Конец." Зміна фона абзацу Задать для пятого абзаца штриховку (узор) 15%: ActiveDocument.Paragraphs(5).Shading.Texture = wdTexture15Percent Зміна стиля абзаца Задать стиль 1-го абзаца Заголовок 1: ActiveDocument.Paragraphs.First.Style = "Заголовок 1" Выбрать для первого предложения шрифт Arial: ActiveDocument.Sentences(1).Font.Name = "Arial" Переміщення по тексту Задать смещение вверх на три пункта для символов первого предложения и вниз на три пункта для второго: ActiveDocument.Sentences(1).Font.Position = 3 ActiveDocument.Sentences(2).Font.Position = - 3 Метод Delete Удалить последнее предложение: ActiveDocument.Sentences.Last.Delete Перетворення символів у верхеій регістр Преобразовать символы первого предложения в верхний регистр: ActiveDocument.Sentences(1).Case = wdUpperCase Выделить первое слово полужирным начертанием: ActiveDocument.Words.First.Bold = True StoryRanges Семейство StoryRanges также возвращает Range-объект, — оно обеспечивает доступ к различным структурным компонентам текста, таким, как основной текст, примечания, сноски, колонтитулы и др. Выбор нужного компонента осуществляется посредством соответствующей константы. Например, задать шрифт Arial для основного текста документа (не затронув при этом все остальное, как случилось бы при обращении к свойству ActiveDocument.Range), можно при помощи следующего кода: ActiveDocument.StoryRanges(wdMainTextStory).Font.Name = "Arial" Выделить полужирным нижний колонтитул 1-й страницы: ActiveDocument.StoryRanges(wdFirstPageFooterStory).Bold = True Списки та таблиці. Word-таблиці Таблицы в документе Word представлены объектами типа Table, доступными через семейство Tables. Каждая таблица — объект Table — состоит из строк (объекты типа Row, объединенные в семейство Rows) и столбцов (объекты типа Column, объединенные в семейство Rows). Кроме того, таблицу можно рассматривать, как набор ячеек (объектов типа Cell, объединенных в семейство Cells). Управління границями таблиць Разрешить отображение границ для первой таблицы документа: ActiveDocument.Tables(1).Borders.Enable = True Видалення стовпчика таблиці Удалить первый столбец в первой таблице: ActiveDocument.Tables(1).Columns(1).Delete Зміна фона таблиці Выделить первую строку первой таблицы штриховкой 15%: ActiveDocument.Tables(1).Rows(1).Shading.Texture = wdTexture15Percent Створення таблиці Создать новую таблицу с заданными параметрами и заменить ею фрагмент, определенный вы- деленной в документе областью (объект Selection): ActiveDocument.Tables.Add Selection.Range, 4, 3 Автоформат таблиці Отформатировать таблицу с применением автоформата Ñïèñîê1: ActiveDocument.Tables(1).AutoFormat wdTableFormatList1 Запис в комірки таблиці данних К ячейкам таблицы можно обращаться по номеру строки и столбца, при этом содержимое ячейки представлено Range-объектом. Например, записать в ячейку первого столбца и первой строки строку “Первая ячейка” можно при помощи следующего кода: ActiveDocument.Tables(1).Cell(1, 1).Range = "Первая ячейка" Зміна ширини стовпчиків таблиці Задать для всех столбцов первой таблицы ширину, равную 33 пунктам: For N = 1 To ActiveDocument.Tables(1).Columns.Count ActiveDocument.Tables(1).Columns(N).Width = 33 Next N Выровнять все столбцы по ширине: ActiveDocument.Tables(1).Columns.DistributeWidth Вирівнювання текста в таблиці Задать для первой строки выравнивание текста по центру: ActiveDocument.Tables(1).Rows(1).Alignment = wdAlignRowCenter Додавання заголовків таблиці Сделать первую строку заглавной: ActiveDocument.Tables(1).Rows(1).HeadingFormat = True Автосумування комірок таблиці Вставить в ячейку (2, 3) поле автосуммирования, которое будет отображать сумму значений в ячейках выше или левее: ActiveDocument.Tables(1).Cell(2, 3).AutoSum Розбиття комірок таблиці Разбить ячейку (2, 3) на 4 ячейки: ActiveDocument.Tables(1).Cell(2, 3).Split 2, 2 Word-списки Списки в документе Word устроены несколько иным образом. Такого объекта, как список, не существует. Абзацы, составляющие список, являются обычными абзацами документа, и когда речь идет о списке, то имеется в виду форматирование ряда абзацев. Об’єкт ListFormat Форматирование для каждого абзаца списка определяется объектом ListFormat, который доступен в качестве свойства текстового диапазона. Чтобы отформатировать некоторый фрагмент текста, как список, необходимо, прежде всего, определить Range-объект, заключающий в себе этот диапазон. Например, для того чтобы отфор- матировать как список абзацы с 5-го по 10-й,