logo
Responses

59. Оператори мови vba та її керуючі конструкції. Конструкції With, For Each мови vba. Управління файлами за допомогою vba. Виконання макросу у Word запис макросу в Excel.

Оператор – це символ, або вираз, який дає вказівку програмі виконати певну дію над конкретними даними. VBA містить декілька категорій операторів: оператор присвоєння; числові і текстові оператори; логічні оператори; оператори порівняння.

Оператор присвоєння. Символ дорівнює (=) в VBA є оператором присвоювання і використовується для присвоєння значення змінній. Правила запису оператора присвоєння наступні: ліворуч від оператора присвоєння повинна стояти змінна, якій передається значення; праворуч від оператора присвоєння повинен стояти вираз.

Операція присвоєння має дві синтаксичні форми:

1. Let varname = expression;

2. varname = expression;

varname - будь-яка змінна VBA

expression - будь-який вираз VBA

Перший варіант операції присвоєння використовувався в ранніх мовах програмування Basic. Другий варіант використовується в сучасній версії VBA.

При виконанні оператора присвоєння VBA спочатку обчислює вираз праворуч від оператора присвоєння, а потім зберігає результат виразу в змінній, ім’я якої знаходиться зліва від знаку рівності.

X = 5 + 7; Y = X + 5 ; Z = X - Y; A = B; I = I + 1.

Початкуючим користувачам іноді незрозумілий сенс останньої операції присвоєння, коли і в лівій, і в правій частинах операції є одна і та ж змінна. В цьому випадку спочатку в проміжний елемент пам’яті поміщається результат обчислення виразу правій частині оператора присвоєння, а потім цей результат привласнюється змінною в лівій частині.

Наприклад, якщо в операторі присвоєння А = А +5, змінна А до операції присвоєння містила значення 7, то після операції вона міститиме значення 12 (7+5).

Слід запам’ятати:

Оператор додавання (+)

Оператора додавання виконує просте додавання. Обидва операнди мають бути чисельними виразами або рядками, які VBA може перетворити в число. Оператора додавання можна також використовувати для виконання арифметичних операцій з даними типу Date .

Оператор віднімання (-)

Оператор віднімання виконує два завдання: використовується для віднімання одного числа з іншого; позначає унарний мінус (це знак мінус, який поміщається перед числом для вказівки того, що це негативне число). Помістити унарний мінус перед змінною або виразом означає те ж, що помножити це число -1.

Оператор множення (*)

Оператора множення перемножує два числа - результатом виразу множення є твір двох операндів. Обидва операнди у виразі множення мають бути чисельними виразами або рядками, які VBA може перетворити в число.

Оператор ділення (/)

Оператор ділення з плаваючою комою виконує звичайне арифметичне ділення своїх операндів.

Цілочисельне ділення (\)

Цілочисельне ділення відрізняється від ділення з плаваючою комою тим, що його результатом завжди є ціле число без дробової частини.

Піднесення до степені (^)

Оператор піднесення до степені підносить число до степені.

5 ^ 3 =125.

Конструкція оператора With мови VBA.

Після ознайомлення з об’єктами, слід розглянути декілька конструкцій мови VBA, які значно полегшують роботу з об’єктами. Для спрощення розуміння використання оператора With, розглянемо приклад форматування діапазону комірок

Процедура форматування діапазону комірок:

Public Sub Format()

Range("B2:D15").NumberFormat = "#,##0.00"

Range("B2:D15").Font.Name = "MS San Serif"

Range("B2:D15").Font.FontStyle = Regular

Range("B2:D15").Font.Size = 13

Range("B2:D15").Font.Strikethrough = False

Range("B2:D15").Font.Superscript = False

Range("B2:D15").Font.Subscript = True

Range("B2:D15").Font.OutlineFont = True

Range("B2:D15").Font.Shadow = True

Range("B2:D15").Font.Underline = xlUnderlineStyleNone

Range("B2:D15").Font.ColorIndex = xlAutomatic

End Sub

При введені коду процедури ми декілька разів набираємо Range("B2:D15"). Із подібних ситуацій VBA пропонує інший вихід – використання оператора With, який “прив’язує” властивості або методи до об’єкта.

Оператор With має наступний синтаксис:

With об’єкт

Оператори

End With

Лістинг наведений нижче демонструє той же код процедури, але з використанням оператора With, який спочатку “прив’язує” до об’єкта Range("B2:D15") властивість NumberFormat = "#,##0.00", а потім властивість Font через другий оператор With “прив’язується” до об’єкта Range("B2:D15").

Оператори With можна вкладати один в одного (допускається до семи вкладень).

Процедура форматування діапазону комірок із використанням оператора With:

Public Sub Format()

With Range("B2:D15")

.NumberFormat = "#,##0.00"

With .Font

.Name = "MS San Serif"

.FontStyle = Regular

.Size = 13

.Strikethrough = False

.Superscript = False

.Subscript = True

.OutlineFont = True

.Shadow = True

.Underline = xlUnderlineStyleNone

.ColorIndex = xlAutomatic

End With

End With

End Sub