Найти тему

VBA для Excel простыми словами. #2. Переменные и свойства ячейки.

Немного теории о переменных.

При создании своих макросов вам где-то нужно будет хранить свои данные. Это можно сделать на отдельном промежуточном листе, либо, удобнее всего хранить в переменных, чтобы конечный пользователь не видел "манипуляций" при выполнении макроса.

Очень часто, при написании макросов, нужно брать данные из одного листа и копировать в другой. Вот для этой цели(разумеется не только для этой) и служат переменные.

Давайте разберемся, что же такое "Переменная". Говоря компьютерным языком - это ячейка в памяти, где хранятся какие-то данные определенного типа. Если перевести на язык человека, это, своего рода, коробка, в которой лежит какая-то определенная вещь. Отсюда вывод: в бумажной коробке мы не будем хранить воду, т.к. со временем бумага размокнет и все вытечет. С переменными то же самое. определенный тип данных хранится в определенной "коробке" - типе переменной. Сейчас разберем несколько типов переменных, которые пользователи чаще всего используют в макросах. (это как несколько вещей в разных коробках).

  • Переменные целого типа - Integer. Целое число в диапазоне от -2147483648 до 2147483648. Согласитесь, довольно большой диапазон, для хранения чисел. Если мы попытаемся записать в переменную данного типа число 5,9 Visual Basic запишет 6, т.к. переменная не предполагает дробную часть. Это как налить компот в дуршлаг: компот выбежит, вареные сухофрукты останутся. (Может и не самый лучший пример)
  • Переменная целого типа - Long. То же целое число, только ООООчень больших значений: от-9223372036854775808 до 9223372036854775807. Я даже не представляю какие данные нужно сохранять в данном типе переменных для простых бухгалтеров :)
  • Переменная с плавающей запятой типа - Double. Практически можно хранить все числа, как целые, так и дробные. Но, лучше целые числа хранить в переменных целого типа.
  • Переменная типа - String. Это хранение любых текстовых строк. Количество символов в строке ограничено до 2 000 000 000 знаков, что позволяет хранить довольно большой текст :)
  • Логическая переменная типа - Boolean. Тут все довольно просто. Здесь хранится либо True, либо False. Другими словами 1 или 0. Переменные данного типа лучше всего использовать для проверки каких-либо условий, которые отвечают фразам "да", "нет" (об этом будет написано более подробно в следующих статьях)
  • Есть еще 2 типа переменных(объектов), которые необходимы при создании макросов. Это Workbook и Worksheet. В них хранятся адреса рабочих книг и рабочих листов. В рамках данной статьи я не буду более подробно рассматривать эти объекты, т.к. это не относится к начальному уровню программирования. Об этих объектах будет рассказано в следующих статьях.

Это основные типы, что вам понадобятся при создании ваших макросов. Типов переменных гораздо больше. О переменных можно все прочитать тут.

Вкратце рассмотрим синтаксис записи переменных. В Visual Basic есть такой оператор Dim, который отвечает за выделение памяти для переменной. Тут все довольно просто: Пишем Dim далее имя переменной, предложение As и ее тип. Имя переменной желательно придумать со смыслом, чтоб вам потом было её легко ассоциировать с данными, хранящимися в ней. Выглядит это так:

Dim str As String ' объявление переменной str с типом данных строка

По такому же принципу объявляются переменные и других типов.

Ячейка Cells в MS Excel

Что же собой представляет ячейка в Excel?. Простыми словами - координаты на листе с X Y переменными. Формат записи выглядит так:

Cells(3.5)

Это означает третья строка и пятая колонка в книге. Все просто. Указываются координаты строки, затем столбца. Для более понятного начального программирования можно формат колонок сделать числовыми, чтоб нагляднее представлять координаты ячейки. Это можно сделать в настройках MS Excel - Файл - Параметры, в открывшемся окне выбрать раздел "формулы" и поставить галочку напротив "Стиль ссылок R1C1", как показано на рисунке

Переключение стиля отображения колонок
Переключение стиля отображения колонок

У всех объектов VBA есть методы и свойства. Разберем "на пальцах", что это такое. Свойства. Возьмем, к примеру, карандаш. У него есть определенные свойства: твердый, снаружи деревянный, есть цвет, размер. Всё это(можно еще добавить кучу свойств карандаша, но в рамках этой статьи это будет скучно) характеризует свойства карандаша. Теперь поговорим о методах. Это то, что мы можем сделать с карандашом: рисовать, точить, сломать(сделать два из одного), намочить, покрасить и т.д. У объекта Cells есть подобные методы и свойства, которые дают менять формат, цвет, высоту, ширину и значения. Синтаксис записи части кода свойств выглядит так:

MsgBox "Зальем ячейку A1 зеленым цветом и запишем в ячейку B1 текст: «Ячейка A1 зеленая!»"
Cells(1,1).Interior.Color = vbGreen
Cells(1,2).Value = "Ячейка A1 зеленая!"

Объекту Cells через точку пишем свойство, далее знак равенства и присваиваем нужное значение. Все методы и свойства находятся в открытом доступе в сети Интернет, их довольно много и, поэтому, не будем подробно останавливаться на каждом. Это будет рассказано(и показано) на конкретных примерах: как изменить шрифт, высоту и ширину ячейки, подогнать размер ячейки по ширине текста.

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