Академический Документы
Профессиональный Документы
Культура Документы
Пример:
2. Ввести в окне “Запись макроса” в поле “Имя макроса” имя нового макроса.
3. Выбрать в списке “Макрос доступен для” шаблон или документ, в котором будет
храниться макрос.
4. Ввести описание макроса в поле “Описание”.
5. Ввести в поле “Назначить макрос” кнопку “Панели” (для назначения макросу кнопки
Спроектировать кнопки, при помощи которых можно провести разбор предложения. При
установке курсора на найденное слово и нажатии на соответствующую клавишу слово
должно окрашиваться в определенный цвет и подчеркиваться.
Порядок работы.
4. Придать кнопке свойство обтекания по контуру, чтобы кнопку можно было перемещать
по листу. Для этого на объекте кнопка следует вызвать контекстно-зависимое меню и
выбрать “Формат объекта”. Появится диалоговое окно “Формат элемента управления”. На
вкладке “Положение” выбрать вариант “По контуру”.
5. Выбрать в контекстно-зависимом меню этого объекта команду “Исходный текст” или
два раза щелкнуть по кнопке. Откроется редактор режима написания программы.
1. Объявить переменные:
Начало
Public Sub CommandButton1_Click()
Dim k As Integer 1a
Dim Text As String 1b
Dim ZAGOLOVOK As Range 1c
Порядок работы.
1. Объявить переменные:
a) b — строковая переменная для размещения в ней выбранного абзаца в документе;
b) k — переменная для хранения количества абзацев в документе;
c) dl — переменная для хранения длины абзаца;
d) Text — переменная для формирования текста-ответа о количестве символов а в абзаце;
e) Nab — переменная для ввода номера абзаца, в котором будет происходить подсчет;
f) I — переменная для организации цикла;
g) kol — переменная для подсчета символов а;
h) REZULTAT — переменная, которая определит область для вывода заголовка.
2. Ввести номер абзаца, используя диалоговое окно.
3. Определить количество абзацев в документе.
4. Проверить существование введенного номера абзаца и выдать сообщение об ошибке,
если такого нет.
5. В переменную b занести текст всего абзаца.
6. Определить длину абзаца.
7. Организовать цикл по нахождению символа а.
8. Сформировать текст вывода сообщения.
9. Вставить дополнительный абзац после последнего абзаца документа для вывода
сообщения.
10. Вывести текст-сообщение в подготовленный абзац.
11. Установить определенный шрифт, размер и цвет текста-сообщения.
Текст программы
Начало
Private Sub CommandButton2_Click() Начало программы
Dim b As String 1a
Dim k As Integer 1b
Dim dl As Long 1c
Dim Text As String 1d
Dim Nab As Integer 1e
Dim i As Long 1f
Dim REZULTAT As Range 1g
kol = 0
Nab = InputBox("Введите номер абзаца", "Подсчитаем буквы а") 2
k = ActiveDocument.Paragraphs.Count 3
If Nab > k Then 4
MsgBox "В тексте нет такого абзаца", 48, "Предупреждение" 4
End 4
End If 4
b = ActiveDocument.Paragraphs(Nab).Range 5
dl = Len(b) 6
For i = 1 To dl 7
If Mid(b, i, 1) = "а" Or Mid(b, i, 1) = "А" Then kol = kol + 1 7
Next i 7
MsgBox kol Отладочная печеть
Text = "Количество букв а в абзаце с номером "& Nab & " - " & kol & "." 8
ActiveDocument.Paragraphs(k).Range.InsertParagraphAfter 9
Set REZULTAT = ActiveDocument.Paragraphs(k + 1).Range
With REZULTAT
.InsertBefore Text 10
.Font.Name = "Arial" 11
.Font.Size = 14 11
.Font.ColorIndex = wdDarkRed 11
End With
End Sub Конец программы
Эта практическая работа выполняется с тем же документом, что и работа № 9–2 и 9–3
(или с любым текстом, который состоит из нескольких абзацев). Задача заключается в
том, чтобы программно определить номер абзаца, в котором наибольшее количество
предложений; выделить сообщение о номере абзаца и о количестве предложений,
используя диалоговое окно; выделить этот абзац другим цветом.
Порядок работы.
1. Объявить переменные:
a) k — переменная для хранения количества абзацев в документе;
b) kol — переменная для хранения количества предложений в абзаце;
c) i — переменная для организации цикла;
d) Mas() — массив для занесения количества предложений в абзацах;
e) Otvet — переменная для формирования текста-ответа с результатами;
f) Max — переменная для хранения максимального количества предложений в абзаце;
g) ind — переменная для хранения номера абзаца с максимальным количеством предложений;
h) REZULTAT — переменная, которая определит область абзаца, к которому надо применить
элементы форматирования.
При объявлении массива нам неизвестно количество абзацев в документе. Поэтому
объявление массива производим в два этапа: 1-й этап — объявление без размера Dim
Mas() As Integer; 2-й этап — после определения количества абзацев в документе
переопределяем размерность массива ReDim Mas(k) As Integer. Такие массивы
называются динамическими.
Кроме этого, чтобы индекс массива начинался с 1, а не с 0 (для удобства работы), в
редакторе в начале листа с процедурой укажите команду “Option Base 1”.
2. Определить количество абзацев в документе.
3. Переопределить размерность массива.
4. Организовать цикл по определению количества предложений в абзацах с занесением их
размерности в массив и сохранением порядкового номера в массиве, что соответствует
номеру абзаца.
5. Организовать цикл по нахождению наибольшего количества предложений в абзаце
(работа со сформированным массивом) по стандартному алгоритму.
6. Сформировать текст вывода сообщения.
7. Вывести в диалоговом окне сообщений результат.
8. Определить область абзаца для форматирования.
9. Установить определенный шрифт, размер и цвет текста-абзаца с максимальным
количеством предложений.
Текст программы
Public Sub CommandButton3_Click()
Dim k As Integer
Dim kol As Integer
Dim i As Integer
Dim Mas() As Integer
Dim otvet As String
Dim Max As Integer
Dim ind As Byte
Dim REZULTAT As Range
kol = 0: k = 0
k = ActiveDocument.Paragraphs.Count
ReDim Mas(k) As Integer
Rem Начало программы
For i = 1 To k
kol = ActiveDocument.Paragraphs(i).Range.Sentences.Count
Mas(i) = kol
Next i
Max = Mas(1)
ind = 1
For i = 2 To k
If Mas(i) > Max Then
Max = Mas(i)
ind = i
End If
Next i
Rem Вывод результатов
otvet = "Самое большое количество предложений в "
& ind & " абзаце - " & Max
MsgBox otvet
Set REZULTAT = ActiveDocument.Paragraphs(ind).Range
With REZULTAT
.Font.Name = "Arial"
.Font.Size = 24
.Font.ColorIndex = wdDarkRed
End With
End Sub
Начало программы
Private Sub CommandButton3_Click()
Dim k As Integer 1a
Dim kol As Integer 1b
Dim i As Integer 1c
Dim Mas() As Integer 1d
Dim otvet As String 1e
Dim Max As Integer 1f
Dim ind As Byte 1g
Dim REZULTAT As Range 1h
kol = 0: k = 0 Обнуление переменных
k = ActiveDocument.Paragraphs.Count 2
ReDim Mas(k) As Integer 3
Rem Начало программы Комментарий
For i = 1 To k 4
kol =
4
ActiveDocument.Paragraphs(i).Range.Sentences.Count
Mas(i) = kol 4
Next i 4
Max = Mas(1) Подготовительная часть перед
ind = 1 циклом
For i = 2 To k Начало цикла
If Mas(i) > Max Then 5
Max = Mas(i) 5
ind = i 5
End If 5
Next i Конец цикла
Rem Вывод результатов Комментарий
otvet = "Самое большое количество предложений в "
6
& ind & " абзаце - " & Max
MsgBox otvet 7
Set REZULTAT = ActiveDocument.Paragraphs(ind).Range 8
With REZULTAT Начало структуры With
.Font.Name = "Arial" 9
.Font.Size = 12 9
.Font.ColorIndex = wdDarkRed 9
End With
End Sub Конец программы
Порядок работы.
1. Объявить переменные:
a) Slovo — переменная для последовательного хранения выделенных слов;
b) L — переменная для хранения длины слова;
c) M — переменная, определяющая половину длины выделенного слова;
d) K — переменная для формирования 1-й половины слова;
e) D — переменная для формирования 2-й половины слова;
f) Kol — переменная для хранения количества абзацев в документе.
2. Определить количество абзацев в документе.
3. Определить область, в которой надо искать слова-палиндромы, — это все абзацы
текста.
4. Организовать цикл по выделению слов в области определения.
5. Присвоить выделенное слово строковой переменой.
6. Определить длину выделенного слова.
7. Проверить длину слова. Если она равна 1, то слово проверять нет смысла.
8. Организовать цикл, чтобы определить, является ли слово палиндромом.
9. Изменить цвет букв у слова-палиндрома.
Текст программы
Начало программы
Private Sub CommandButton1_Click()
Dim slovo As String 1a
Dim L As Byte 1b
Dim M As Byte 1c
1d
Dim K As String
Dim D As String 1e
Dim kol as byte 1f
kol = ActiveDocument.Paragraphs.Count 2
Set myRange = ActiveDocument.Range
(ActiveDocument.Paragraphs(1).Range.Start, 3
ActiveDocument.Paragraphs(kol).Range.End)
For Each aword In myRange.Words 4 (Начало внешнего цикла)
slovo = aword.Text 5
L = Len(slovo) 6
If L <= 1 Then GoTo M1 7
M = Int(L / 2) Подготовка к проверке на палиндром
For I = 1 To M 8 (Начало вложенного цикла)
K = Mid$(slovo, I, 1) 8
D = Mid$(slovo, L - I + 1, 1) 8
If K <> D Then GoTo M1 8
Next I 8 (Конец вложенного цикла)
aword.Font.Size = 14 9
aword.Font.ColorIndex = wdDarkBlue 9
M1: Next aword 4 (Конец внешнего цикла)
End Sub Конец программы