Изучите текст макроса


Листинг макроса ВозрастФормула

Sub ВозрастФормула()

ActiveCell.FormulaR1C1 = _

"=YEAR(TODAY())-YEAR(RC[-5])-IF(OR(MONTH(TODAY())<MONTH(RC[-5]),AND(MONTH(TODAY())=MONTH(RC[-5]),DAY(TODAY())<DAY(RC[-5]))),1,0)"

Selection.AutoFill Destination:=Range("G4:G13"), Type:=xlFillDefault

End Sub

Причем, значение xlFillDefault - приложение Microsoft Office Excel выбирает наиболее подходящий тип заполнения в соответствии с исходным диапазоном.

III. Написание макроса «ВозрастЧисло»

Необходимо самостоятельно написать макрос для расчета возраста в редакторе Visual Basic (VBA)

Function dhCalculateAge (datDate As Date) As Long

Dim lngAge As Long

' Находим разность между текущей датой и указанной (лет)

lngAge = DateDiff("yyyy", datDate, Date)

If DateSerial(Year(datDate) + lngAge, Month(datDate), _

Day(datDate)) > Date Then

' В этом году день рождения еще не наступил

lngAge = lngAge - 1

End If

dhCalculateAge = lngAge

End Function

Sub ВозрастЧисло()

Dim i As Integer

For i = 4 To 13

Cells(i, 8) = dhCalculateAge(Cells(i, 2))

Next i

End Sub

Изучите текст макроса - student2.ru

Рисунок 8 Таблица с результатами после выполнения макроса ВозрастЧисло()

IV. Написание макроса «ВозрастЦвет»

Отметим пациентов разной возрастной категории цветами для наглядности.

Таблица 1. Соответствие между категорией, возрастом и цветом

Категория Возраст Присваемый цвет
«Пожилые» от 60 и выше коричневый
«Взрослые» от 18 до 60 синий
«Дети» от 0 до 18 зеленый

Необходимо самостоятельно написать макрос для разделения на категории по возрасту в редакторе Visual Basic (VBA)

Задать цвет можно несколькими способами

1. явно

Font.Color = vbBroun

2. используя индекс цвета

ColorIndex = 53 (когда необходим оттенок цвета)

Создадим макрос для разделения на категории по возрасту с использованием «явного» цвета.

Sub ВозрастЦвета()

Dim i As Integer

For i = 4 To 13

If Cells(i, 8) < 19 Then

Cells(i, 8).Font.Color = vbGreen

ElseIf Cells(i, 8) < 61 Then

Cells(i, 8).Font.Color = vbBlue

Else

Cells(i, 8).Font.Color = vbBroun

End If

Next i

End Sub

Откорректируем созданный макрос, для категории «Пожилые» выберем светло коричневый (индекс = 53)

Sub ВозрастЦвета()

Dim i As Integer

For i = 4 To 13

If Cells(i, 8) < 19 Then

Cells(i, 8).Font.Color = vbGreen

ElseIf Cells(i, 8) < 61 Then

Cells(i, 8).Font.Color = vbBlue

Else

Cells(i, 8).Font.ColorIndex = 53

End If

Next i

End Sub

V. Написание макроса «ДиабетЦвета»

Необходимо оценить результатам анализа глюкозы натощак, указав категорию и выделив цветом по таблице 2.

Таблица 1. Соответствие между категорией, уровнем глюкозы и цветом

Категория Результат глюкозы натощак Присваемый цвет
«Норма» <5.5 зеленый
«Подозрение» > 5.5 синий
«Диабет» > 8 красный

Создадим макрос для оценки результатов анализа глюкозы натощак с разделением на категории с использованием «явного» цвета.

Sub ДиабетЦвета()

Dim i As Integer

For i = 4 To 13

If Cells(i, 5) < 5.5 Then

Cells(i, 9) = "норма"

Cells(i, 9).Font.Color = vbGreen

ElseIf Cells(i, 5) < 8 Then

Cells(i, 9) = "подозрение"

Cells(i, 9).Font.Color = vbBlue

Else

Cells(i, 9) = "диабет"

Cells(i, 9).Font.Color = vbRed

End If

Next i

End Sub

Изучите текст макроса - student2.ru

Рисунок 9 Таблица с выходными данными по занятию в классе

Приложение 1 Типы данных и их диапазон значений.

Тип данных байт Диапазон значений
Byte (байт) От 0 до 255
Boolean (логический) True или False
Integer (целые) От -32768 до 32767
Long (длинное целое) От -2147483648 до 2147483647
Single (плавающее обычной точности) От -3,402823E38 до -1,401298Е-45 и от 1,401298Е-45 до 3,402823E38
Double (плавающее двойной точности) От -1,79769313486231Е308 до -4,94065645841247Е-324 и от 4,94065645841247Е-324 до 1,79769313486231Е308
Тип данных байт Диапазон значений
Date (время и дата) От 1 января 100 г. до 31 декабря 9999 г.
Object (объект) Любой указатель объекта
String (строка переменной длины) 10+ длина строки От 0 до приблизительно двух миллиардов
String (строка постоянной длины) Длина строки От 1 до 65400
Variant (числовые подтипы) От -1,79769313486232Е308 до -4,94065645841247Е-324 и от 4,94065645841247Е-324 до 1,79769313486232Е308
Variant (строковые подтипы) 22+ длина строки От 0 до приблизительно двух миллиардов
Type (определяемый пользователем) Определяется элементами типа Диапазон каждого элемента определяется его типом данных

Наши рекомендации