Управление документами Word и Excel на VBA - eDrive
Управление документами Word и Excel на VBA - eDrive Управление документами Word и Excel на VBA - eDrive
6 Windows (2).WindowState = wdWindowStateMaximize End Sub Sub Документ () Documents.Open ("Документ1.doc") Documents.Add имя = "Новый документ" Documents (2).SaveAs (имя) MsgBox "Документ называется " & Documents (2).Name Documents (1).Activate MsgBox "Открыто " & Documents.Count & " документа: " & _ ActiveDocument.Name & " и " & Documents (2).Name ActiveDocument.Save Documents.Close SaveChanges:=wdPromptToSaveChanges End Sub Sub КоличествоКомпонентов () MsgBox "В документе " & ActiveDocument.Paragraphs.Count & _ " абзацев" & Chr (13) & ActiveDocument.Sentences.Count & _ " предложений" & Chr (13) & ActiveDocument.Characters.Count _ & " символов" End Sub Sub СловаИПредложения () первое = Documents (1).Words.First последнее = Documents (1).Sentences.Last MsgBox "Начав со слова " & первое & _ ", кончаем предложением " & последнее End Sub Sub ПятыйСимвол () ActiveDocument.Characters.Item (5) = "Ф" Msgbox ActiveDocument.Characters.Item (5) End Sub Sub СтильИТипДокумента () Documents.Open ("Документ1.doc") Documents ("Документ1.doc").Characters (2) = "7" MsgBox ActiveDocument.Styles (wdStyleHeading1) MsgBox ActiveDocument.Type End Sub Процедурное программирование в Word Наиболее распространенные задачи, решаемые VBA в среде Word, посвящены работе с выделенными фрагментами текста. Объекты класса Selection в Word имеют богатую гамму методов и свойств: • свойства Next и Previous возвращают фрагменты текста, следующие за выделенным и предшествующие ему;
7 • свойство End указывает конец выделенного фрагмента; • свойство Font управляет шрифтом; • метод Copy копирует выделенный фрагмент в буфер обмена, Cut вырезает его в буфер обмена, Move перемещает в новое место, Paste реализует вставку содержимого буфера, а Delete удаляет; • методы HomeKey, EscapeKey, EndKey, MoveLeft, MoveRight и т.п. имитируют нажатие соответствующих клавиш; • методы Expand и Extend расширяют выделение. Некоторые компоненты (например, свойство Text в классе Selection) при обращении можно опускать как используемые по умолчанию. Обращение к группе членов одной коллекции удобно выполнять по схеме: With Коллекция .Член [ … ] End With Переменные VBA могут хранить объекты Word и манипулировать ими. Оператор Set создает объектную переменную, которую можно использовать в программе вместо объекта. Примеры Function ЧтоМенять () Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend ЧтоМенять = Left (Selection.Text, 1) End Function Sub Вернуться () Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend End Sub Sub ВыделенныеСимволы () ‘ Здесь использована приведенная выше функция ЧтоМенять символ = Selection.Characters (1).Text MsgBox "Вот первый символ: " & символ всего = ActiveDocument.Sentences (1).Characters.Count MsgBox "В первом предложении " & всего & " символов" & Chr (13) & _ "Надо заменить символ " & ЧтоМенять End Sub Sub Диапазоны () символ = Selection.Characters (1) MsgBox "Вот первый символ: " & символ Selection.Copy
- Page 1 and 2: В. М. Водовозов Упра
- Page 3 and 4: Оглавление VISUAL BASIC F
- Page 5: 5 • ActiveWritingStyle — акт
- Page 9 and 10: 9 Sub ИзменитьПервую
- Page 11 and 12: 11 Sub Красный () ‘ Отд
- Page 13 and 14: 13 ElseIf втораяБуква =
- Page 15 and 16: 15 Sub Поиск () Selection.Home
- Page 17 and 18: 17 имя (0, 50) = "n": имя (0,
- Page 19 and 20: 19 представляющим п
- Page 21 and 22: 21 Range ("a6").Value = "Приве
- Page 23 and 24: 23 End With End Sub Sub Удале
- Page 25 and 26: 25 ‘ выражая его в д
- Page 27 and 28: 27 For Each фигура In Лис
- Page 29 and 30: 29 .Add Type:=msoControlEdit .Add T
- Page 31 and 32: 31 ActiveWindow.ActivePane.View.Typ
7<br />
• свойство End указывает конец выделенного фрагмента;<br />
• свойство Font управляет шр<strong>и</strong>фтом;<br />
• метод Copy коп<strong>и</strong>рует выделенный фрагмент в буфер обме<strong>на</strong>, Cut<br />
вырезает его в буфер обме<strong>на</strong>, Move перемещает в новое место, Paste<br />
реал<strong>и</strong>зует вставку содерж<strong>и</strong>мого буфера, а Delete удаляет;<br />
• методы HomeKey, EscapeKey, EndKey, MoveLeft, MoveRight <strong>и</strong> т.п.<br />
<strong>и</strong>м<strong>и</strong>т<strong>и</strong>руют <strong>на</strong>жат<strong>и</strong>е соответствующ<strong>и</strong>х клав<strong>и</strong>ш;<br />
• методы Expand <strong>и</strong> Extend расш<strong>и</strong>ряют выделен<strong>и</strong>е.<br />
Некоторые компоненты (<strong>на</strong>пр<strong>и</strong>мер, свойство Text в классе Selection)<br />
пр<strong>и</strong> обращен<strong>и</strong><strong>и</strong> можно опускать как <strong>и</strong>спользуемые по умолчан<strong>и</strong>ю.<br />
Обращен<strong>и</strong>е к группе членов одной коллекц<strong>и</strong><strong>и</strong> удобно выполнять по схеме:<br />
With Коллекц<strong>и</strong>я<br />
.Член<br />
[ … ]<br />
End With<br />
Переменные <strong>VBA</strong> могут хран<strong>и</strong>ть объекты <strong>Word</strong> <strong>и</strong> ман<strong>и</strong>пул<strong>и</strong>ровать <strong>и</strong>м<strong>и</strong>.<br />
Оператор Set создает объектную переменную, которую можно <strong>и</strong>спользовать<br />
в программе вместо объекта.<br />
Пр<strong>и</strong>меры<br />
Function ЧтоМенять ()<br />
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend<br />
ЧтоМенять = Left (Selection.Text, 1)<br />
End Function<br />
Sub Вернуться ()<br />
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend<br />
End Sub<br />
Sub ВыделенныеС<strong>и</strong>мволы ()<br />
‘ Здесь <strong>и</strong>спользова<strong>на</strong> пр<strong>и</strong>веден<strong>на</strong>я выше функц<strong>и</strong>я ЧтоМенять<br />
с<strong>и</strong>мвол = Selection.Characters (1).Text<br />
MsgBox "Вот первый с<strong>и</strong>мвол: " & с<strong>и</strong>мвол<br />
всего = ActiveDocument.Sentences (1).Characters.Count<br />
MsgBox "В первом предложен<strong>и</strong><strong>и</strong> " & всего & " с<strong>и</strong>мволов" & Chr (13) & _<br />
"Надо замен<strong>и</strong>ть с<strong>и</strong>мвол " & ЧтоМенять<br />
End Sub<br />
Sub Д<strong>и</strong>апазоны ()<br />
с<strong>и</strong>мвол = Selection.Characters (1)<br />
MsgBox "Вот первый с<strong>и</strong>мвол: " & с<strong>и</strong>мвол<br />
Selection.Copy