Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб.раб.№2 VBA.doc
Скачиваний:
1
Добавлен:
20.07.2019
Размер:
135.17 Кб
Скачать

Задание 3

  1. Добавьте форму. Разместите на форме 2 элемента "Кнопка" (кнопка CommandButton2 для выхода из программы) и 1 элемент "Надпись".

  2. С помощью оператора If…Then…Else…End If напишите код процедуры, которая окрашивает положительные числа в синий цвет, отрицательные – зеленым, а нуль – красным.

Для создания универсальной программы, т.е. щелчок по кнопке будет форматировать каждую последующую ячейку, нужно использовать переменные в адресе, что позволяет сделать объект Cells.

If X > 0 Then

Cells(Y, 1).Font.ColorIndex = 5

ElseIf X < 0 Then

Cells(Y, 1).Font.ColorIndex = 4

Else

Cells(Y, 1).Font.ColorIndex = 3

End If

Условимся, что номер строки – это Y, а значение ячейки это переменная Х. Опишите в программе до процедуры CommandButton1_Click() эти переменные:

Dim Y As Byte и Dim X As Integer

  1. Введите 10 чисел (положительных, отрицательных и нулевых) в ячейки столбца А. Проверьте работу программы. Результат окажется нулевым, т.к. адрес строки машина воспринимает по переменной Y, которая никак своего значения, помимо объявления, не изменяет – это значит Y =0.

  2. Добавьте до оператора If строку Y=Y+1. Теперь при каждом щелчке номер строки будет вырастать на 1. Проверьте работу кнопки. Результат окажется неверным (все окрасилось красным при любых значениях), т.к. для программы значение Х тоже нулевое.

  3. До If добавьте строку X=Cells(Y, 1). Проверьте работу кнопки.

  4. Перенесите строку Dim Y As Byte внутрь процедуры, измените цвет чисел на черный и вновь проверьте работу кнопки. Первая ячейка изменила форматирование, но остальные остались прежние, т.к. при запуске процедуры переменная Y каждый раз заново объявляется и равна 0 в начальный момент. Верните строку на прежнее место.

Примечание: Переменные, объявленные вне процедуры, т.е. в объекте Declаrations, сохраняют значение после окончания выполнения процедуры. Переменные, объявленные внутри процедуры Sub...End Sub или вовсе не объявленные, при каждом запуске программы обнуляются.

  1. Чтобы прослеживать в какой строке происходит форматирование, добавьте до End Sub строку: Range("B1")=Y. Проверьте работу кнопки.

  2. Добавьте на форму еще 1 кнопку. Напишите код процедуры, которая окрашивает числа в черный цвет: Range("A1:A10").Font.ColorIndex = 0, а также прослеживает в какой строке происходит форматирование.

  3. Проверьте работу программы: сначала работу 2 кнопки, затем 1 кнопки. В ячейке В1 значение номера строки только вырастает.

  4. Обнулите значение Y. Проверьте работу программы.

  5. Добавьте на форму еще 1 кнопку. С помощью оператора Select … Case…End Select напишите код процедуры, которая изменяет размера шрифта по правилу: чем больше число, тем больше значение размера шрифта.

Y = Y + 1

X = Cells(Y, 1)

Select Case X

Case Is < -20

Cells(Y, 1).Font.Size = 10

Case Is < 0

Cells(Y, 1).Font.Size = 12

Case 0 To 20

Cells(Y, 1).Font.Size = 14

Case Is > 20

Cells(Y, 1).Font.Size = 16

End Select

Range("B1") = Y