Remkomplekty.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Код vba в excel

VBA Excel. Начинаем программировать с нуля

Первое знакомство с редактором VBA Excel, создание процедур (подпрограмм) и написание простейшего кода, работающего с переменными и ячейками рабочего листа.

Знакомство с редактором VBA

  1. Создайте новую книгу Excel и сохраните ее как книгу с поддержкой макросов с расширением .xlsm. В старых версиях Excel по 2003 год – как обычную книгу с расширением .xls.
  2. Нажмите сочетание клавиш «левая_клавиша_Alt+F11», которое откроет редактор VBA. С правой клавишей Alt такой фокус не пройдет. Также, в редактор VBA можно перейти по ссылке «Visual Basic» из панели инструментов «Разработчик» на ленте быстрого доступа. Если вкладки «Разработчик» на ленте нет, ее следует добавить в настройках параметров Excel.

В левой части редактора VBA расположен проводник проекта, в котором отображены все открытые книги Excel. Верхней строки, как на изображении, у вас скорее всего не будет, так как это – личная книга макросов. Справа расположен модуль, в который записываются процедуры (подпрограммы) с кодом VBA. На изображении открыт модуль листа, мы же далее создадим стандартный программный модуль.

  1. Нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку после значка Excel на панели инструментов.

После нажатия кнопки «Module» вы увидите ссылку на него, появившуюся в проводнике слева.

Первая программа на VBA Excel

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

  1. Откройте стандартный модуль двойным кликом по его ссылке в проводнике. Поместите в него курсор и нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.

В результате откроется окно добавления шаблона процедуры (Sub).

  1. Наберите в поле «Name» имя процедуры: «Primer1», или скопируйте его отсюда и вставьте в поле «Name». Нажмите кнопку «OK», чтобы добавить в модуль первую и последнюю строки процедуры.

Имя процедуры может быть написано как на латинице, так и на кириллице, может содержать цифры и знак подчеркивания. Оно обязательно должно начинаться с буквы и не содержать пробелы, вместо которых следует использовать знак подчеркивания.

  1. Вставьте внутрь шаблона процедуры следующую строку: MsgBox «Привет» .

Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».

  1. Проверьте, что курсор находится внутри процедуры, и запустите ее, нажав клавишу «F5». А также, запустить процедуру на выполнение можно, нажав на треугольник (на изображении под пунктом меню «Debug») или на кнопку «Run Sub/UserForm» во вкладке «Run» главного меню редактора VBA Excel.


Если вы увидели такое сообщение, как на изображении, то, поздравляю – вы написали свою первую программу!

Работа с переменными

Чтобы использовать в процедуре переменные, их необходимо объявить с помощью ключевого слова «Dim». Если при объявлении переменных не указать типы данных, они смогут принимать любые доступные в VBA Excel значения. Комментарии в тексте процедур начинаются со знака «’» (апостроф).

Пример 2
Присвоение переменным числовых значений:

Оформление кода VBA

Начиная практиковаться в написании кода VBA, очень важно с самого начала выработать хорошие привычки в оформлении кода, чтобы в дальнейшем написанный код было легко читать и понимать, как он работает.

В процессе написания кода, программист может иметь совершенно чёткое представление о том, что за код он пишет и как этот код должен работать. Но нужно позаботиться и о том, чтобы, вернувшись к работе спустя полгода, не пришлось ломать голову, пытаясь понять, что должен делать этот код. Ещё более неприятная ситуация – когда кто-то другой станет продолжать Вашу работу над кодом и не сможет понять, как он работает.

Эта статья посвящена комментариям, отступам в коде и переносам строк – элементам, которые делают код аккуратным и понятным.

Комментарии в VBA

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

Комментарии не участвуют в процессе выполнения программы и не влияют на результат работы макроса. Каждая строка, начинающаяся апострофом (‘), будет считаться в VBA комментарием. Редактор VBA в Excel выделит такую строку зелёным цветом шрифта, чтобы с первого взгляда было понятно, что это комментарий, который не будет выполняться.

Ниже продемонстрировано, как при помощи комментариев поясняется работа простой процедуры Sub:

Не расстраивайтесь, если какую-то часть кода, показанного выше, не удалось понять – далее в учебнике мы рассмотрим эту тему подробнее. Цель приведённого примера – продемонстрировать, как при помощи комментариев поясняется каждый блок кода.

Часто программисты ленятся добавлять подробные комментарии к своему коду, но, поверьте, затраченные усилия оправдают себя с избытком! Несколько минут, потраченных на написание понятного комментария, могут сэкономить Вам долгие часы в будущем.

Отступы в коде VBA

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

Переносы строк в VBA

Ещё один способ сделать код более читаемым и облегчить работу с ним – делать переносы и разбивать одну длинную строку кода на несколько коротких. В VBA, чтобы разбить строку, нужно вставить символы ” _” (пробел+подчёркивание) непосредственно перед переносом строки. Это сообщает компилятору VBA, что текущая строка кода продолжается на следующей строке.

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

Посмотрите на этот оператор If:

При помощи переносов строк тот же оператор If может быть записан вот так:

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

Знакомство с программированием в Excel

Добавление на ленту вкладки разработчика

Написание кода Ваших процедур и редактирование макросов производится в редакторе Visual Basic, который доступен с вкладки «Разработчик». Данная вкладка по умолчанию скрыта. Для ее отображения необходимо выполнить следующие действия:

Для Excel 2007. Зайдите в параметры Excel, используя кнопку Office, и в «основных параметрах работы с Excel» установите галочку на пункте «Показывать вкладку Разработчик на ленте».

Для Excel 2010 и 2013. В параметрах Excel нужно выбрать пункт «Настроить ленту» и в категории основные вкладки установить галочку для вкладки «Разработчик».

Читать еще:  Vba excel cells свойства

Знакомство с редактором Visual Basic в Excel

Чтобы попасть в редактор кода, кликните на вкладке разработчика в области «Код» по кнопке «Visual Basic».

После этого на экране появится новое окно редактора VBA. Рассмотрим ниже некоторые его элементы, которые могут понадобиться в самом начале.

№1 на изображении. Кнопка сохранить. Сохраняет текущую книгу Excel. Необходимо быть внимательнее при работе с несколькими книгами, так как текущей считается та, которая выделена в окне проектов (№3 на изображении).

№2 на изображении. Кнопки запуска, остановки и прерывания выполнения кода. Во время запуска начинает выполняться код той процедуры, на которой размещен курсор. Данные кнопки дублируются вкладкой «Run» основного меню редактора.

№3 на изображении. Окно управления проектами VBA открытых книг (Project Explorer) и кнопка, отображающая это окно.

№4 на изображении. Кнопка, отображающая окно свойств объектов (Properties Window), выбранных в окне №3, и элементов пользовательских форм (работа с объектами, их свойствами и методами будет рассмотрена в отдельной статье этой категории).

№5 на изображении. Кнопка вызова окна объектов (Object Browser). В нем описаны все доступные для работы объекты, их свойства и методы.

Кнопки №3, №4 и №5 так же доступны на вкладке «View» главного меню редактора. Там же можно вызвать другие полезные для работы окна, которые не будут рассмотрены в этом материале.

Написание простой процедуры на Visual Basic for Application

Код любой процедуры (подпрограммы) располагается в модуле, поэтому необходимо его добавить, чтобы приступить к программированию. Выберите пункт «Module» на вкладке «Insert» основного меню редактора VBA. В основной области редактора (на изображении имеет серый фон) должно появиться новое окно кода – Имя_книги – имя_модуля (Code), а в окне управления проектами (№3) к дереву выбранного проекта добавится вновь созданный модуль.

Добавьте в модуль следующий код:

Данная процедура выводит на экран диалоговое окно с сообщением «Привет пользователь!». Протестируйте ее работу, нажав кнопку Rub Sub (№2 на изображении) или вызвав как обычный макрос.

Теперь более подробно разберем приведенный код.

Любая процедура начинается со строки объявления, состоящей из оператора Sub (сокращение от Subprogram), после которого следует имя подпрограммы. За именем следует перечень аргументов, заключенный в скобки.

Для имени действуют некоторые ограничения: оно должно начинаться с буквы и не должно содержать пробелы и большинство спецсимволов.

В этом примере аргументы не используются, поэтому указываются пустые скобки.

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

Последняя строка содержит оператор End с последующим ключевым словом Sub и сообщает о завершении процедуры.

Учимся пользоваться Object Browser

Выше была упомянута функция MsgBox, но ее возможности полностью не рассмотрены. Это хороший случай, чтобы научиться использовать браузер объектов (№5 на изображении окна редактора VBA).

Нажмите кнопку на панели или клавишу F2, чтобы отобразить Object Browser:

Выпадающий список №1 содержит перечень всех подключенных библиотек. Используйте его только в том случае, если точно знаете, к какой библиотеке относится изучаемый класс, функция и т.д. (подключить или отключить любую из доступных библиотек можно, выбрав пункт «References» на вкладке «Tools» главного меню редактора VBA).

Примечание: Библиотеки предоставляют стандартные и дополнительные возможности работы с объектами Excel (ячейки, листы, книги и т.д.), файловой системы, изображениями, базами данных и другими.

Поле №2 предназначено для поиска свойств, методов, классов подключенных библиотек.

Результаты поиска отображаются в поле №3 и представляют из себя таблицу с тремя столбцами: библиотека, класс и член класса.

Поле №4 содержит перечень всех классов, выбранных в поле №1 библиотек.

В области №5 содержится список всех членов класса, выбранного в поле №4.

Поле №6 содержит краткую справку о выделенном результате поиска, классе или члене класса.

Примечание: библиотеки, классы, функции и процедуры (методы), свойства и т.п. в Object Browser имеют различные обозначения, представленные набором пиктограмм. Краткая справка (поле №6) всегда указывает какой тип элемента выделен. Обращайте на это внимание, чтобы в дальнейшем лучше ориентироваться в работе с объектами.

Примечание: Понятие объекта не относится к теме данной статьи и будет рассмотрено в следующих материалах.

Теперь найдем функцию MsgBox с помощью браузера объектов. В поле поиска (№2) впишите ее название и кликните по кнопке с изображением бинокля. В поле результатов поиска выделите строку со значением MsgBox в столбце «Member». В поле №6 появилась краткая информация, сообщающая нам, что выбранный член является функцией, имеет перечень аргументов, возвращает результат типа VbMsgBoxResult, относиться в классу Interaction библиотеки VBA.

Для получения полной справки кликните по кнопке с изображением вопросительного знака. В зависимости от версии Excel, Вас перенаправить на файл справки или сайт с документацией от Microsoft.

Изучите самостоятельно возможности функции MsgBox.

Ссылка на процедуру VBA

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

Для лучшего понимая рассмотрим пример (в примере используется псевдокод):

Выносите дублирующие участки кода в отдельные процедуры и указывайте ссылки на них из главной процедуры:

Для указания ссылки на процедуру используется оператор Call, который состоит из необязательного ключевого слова Call и имени вызываемой подпрограммы:

How to dou

УРОК 4. Макросы. Пишем код полностью с нуля. Академия Excel

Table of Contents:

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

Используйте клавишу Tab для ввода некоторых строк, чтобы сделать код более удобным для чтения. Отступы не нужны, но это хорошая привычка приобретать.

Одна строка кода VBA может быть такой, какой вам нужно. Тем не менее, вы можете использовать символы продолжения строки, чтобы разбить длинные строки кода. Чтобы продолжить одну строку кода (также называемую оператором ) от одной строки до следующей, завершите первую строку пробелом, за которым следует символ подчеркивания (_). Затем продолжите утверждение на следующей строке. И не забывайте о пространстве. Символ подчеркивания, которому не предшествует пробел, не будет выполнять эту работу.

Вот пример одного оператора, разбитого на три строки:

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

Читать еще:  Формулы в vba excel

Инженеры с белым покрытием, которые проектировали VBE, ожидали, что люди будут ошибаться. Поэтому VBE имеет несколько уровней отмены и повтора. Если вы удалили оператор, которого не нужно, нажмите кнопку «Отменить» на панели инструментов (или нажмите Ctrl + Z), пока оператор не появится снова. После отмены вы можете использовать кнопку «Повторить», чтобы выполнить отмененные вами изменения.

Готовы ли вы ввести код реального реального времени? Выполните следующие шаги:

Создайте новую книгу в Excel.

Нажмите Alt + F11, чтобы активировать VBE.

Нажмите имя новой книги в окне проекта.

Выберите «Вставить» → «Модуль», чтобы вставить модуль VBA в проект.

Введите следующий код в модуле:

Поместите курсор в любом месте текста, который вы набрали, и нажмите F5, чтобы выполнить процедуру.

F5 является ярлыком для команды Run → Run Sub / UserForm.Если вы правильно ввели код, Excel выполнит эту процедуру, и вы можете ответить на простое диалоговое окно. Помните, что текст в диалоговом окне будет другим.

Процедура GuessName отображает это диалоговое окно.

Когда вы вводите код, указанный в шаге 5, вы можете заметить, что VBE вносит некоторые изменения в текст, который вы вводите. Например, после ввода инструкции Sub, VBE автоматически вставляет инструкцию End Sub. И если вы опустите пространство до или после знака равенства, VBE вставляет вам пространство. Кроме того, VBE изменяет цвет и заглавные буквы некоторого текста. Это все нормально. Это просто способ VBE держать вещи аккуратными и читаемыми.

Если вы выполнили предыдущие шаги, вы просто написали процедуру VBA Sub, также известную как макрос . Когда вы нажимаете F5, Excel выполняет код и следует инструкциям. Другими словами, Excel оценивает каждое утверждение и делает то, что вы ему сказали. (Не позволяйте этой новообретенной власти идти в вашу голову.) Вы можете выполнять этот макрос сколько угодно раз — хотя он имеет тенденцию терять свою привлекательность через несколько десятков раз.

Для записи этот простой макрос использует следующие понятия:

Определение процедуры Sub (первая строка)

Присвоение значений переменным (Msg и Ans)

Объединение (объединение) a string (с помощью оператора &)

Использование встроенной функции VBA (MsgBox)

Использование встроенных констант VBA (vbYesNo, vbNo и vbYes)

Структура программного кода VBA

Программа VBA представляет собой совокупность процедур и функций, размещённых, в зависимости от особенностей решаемой задачи, в одном или нескольких модулях (это специальные разделы Excel). Добавление модуля осуществляется по команде Insert→Module (в этом случае программный код составляется пользователем) или при создании макроса (когда программа создается автоматически). Созданному модулю присваивается стандартное имя Module1, Module2 и т.д.

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

Для удаления модуля следует: выделить имя модуля →- выбрать команду меню File → Remove Module→Щелкнуть в окне диалога на кнопке «Нет».

Макросы

Макрос — это последовательность команд и действий пользователя, записанная и хранимая внутри документа и исполняемая Excel так же, как пользователь производил эти действия. Последовательность действий пользователем выполняется один раз при записи макроса, затем автоматически производится Excel при каждом запуске макроса. Большинство команд, которые можно выполнить с использованием меню, клавиатуры или мыши, можно записать в макрос и выполнить их при необходимости. С помощью макроса можно строить числовые ряды, копировать таблицы, выполнять переход на нужные листы, сохранять информацию, работать в режиме ввода и т.д. Макрос записывается в виде процедуры с заданным именем в модуль. Имя макроса может состоять из букв, цифр и символа подчеркивания ( _ ).

Для записи макроса необходимо: выполнить команду Сервис → Макрос→Начать запись; в окне диалога «Запись макроса» задать имя макроса и сочетание клавиш для быстрого выполнения макроса; затем выполнить нужные действия; после чего закончить запись макроса по команде меню Сервис → Макрос → Остановить запись. При записи макроса используются команды меню, кнопки панели инструментов, ярлычки листов, клавиатура.

Рассмотрим создание макроса на конкретном примере. Необходимо создать макрос с именем «Ввод», выполняющий переход на Лист1 в открытой рабочей книге, ввод в диапазон ячеек А1:С1 заголовков столбцов, в ячейки А2 и В2 исходных данных, в ячейку С2 — результат перемножения значений ячеек А2 и В2 и возврат на Лист2.

Для записи макроса выполняем следующую последовательность действий:

1. Создаем Книгу1.xls.

2. Выбираем команду меню Сервис →Макрос→Начать запись. Откроется диалоговое окно «Запись макроса».

3. Вводим с клавиатуры имя макроса «Ввод» и задаем сочетание клавиш нажатием на букву «в». В дальнейшем этот макрос будет выполняться при нажатии комбинации клавиш «Ctrl+в».

4. Щелкаем на кнопке «ОК». Если была активна панель инструментов «Visual Basic», на ней появится кнопка «Остановить запись», говорящая о том, что можно выполнять действия для макроса.

5. Переходим на Лист1, для этого щелкаем на ярлычке Лист1.

6. Выделяем ячейку A1 и вводим слово «Цена».

7. Выделяем ячейку B1 и вводим слово «Количество».

8. Выделяем ячейку С1 и вводим слово «Стоимость».

9. Выделяем ячейку A2 и вводим любое число.

10. Выделяем ячейку В2 и вводим любое число.

11. Выделяем ячейку С2 и вводим формулу =А2*В2. Щелкаем на кнопке «Остановить запись» или выбираем команду Сервис → Макрос→Остановить запись для завершения записи макроса. В результате наших действий формируется процедура. Чтобы ее просмотреть требуется выполнить команду меню Сервис→ Макрос → Макросы, выбрать в окне диалога макрос «Ввод» и нажать кнопку Изменить. После этого мы попадаем в режим редактора Visual Basic, где в специальном окне отображается программный код макроса (рис.8).

Рис.8. Вид окна программного кода с макросом

Макрос представляет процедуру, начинающуюся с ключевого слова Sub и заканчивающуюся словом End Sub. Первые строки процедуры являются комментариями, они содержат имя макроса, дату записи, автора и комбинацию клавиш. Далее следуют команды, записанные по правилам VBA. Каждая команда соответствует выполненному действию.

Рассмотрим подробно команды макроса.

Sheets(«Лист1»).Select ‘переход на Лист1. Данная команда состоит из указания на объект Sheets(«Лист1») и метода Select для рабочего листа.

Range(«A1»).Selectвыделение ячейки A1.

ActiveCell.FormulaR1C1 = «Цена» ‘ввод текста в выделенную ячейку. Команда включает ссылку на активную ячейку, произведенную с помощью свойства ActiveCell, и свойство FormulaR1C1, которому присваивается значение Цена. Подробнее про адресацию ячеек см. в подразделе «Адресация ячеек в Excel».

Читать еще:  Excel vba скопировать диапазон ячеек

Range(«В1»).Select ‘выделение ячейки В1.

ActiveCell.FormulaR1C1 = «Количество» ‘ ввод текста в активную ячейку. Аналогично поступаем с ячейками С1, А2, В2. В ячейку С2 введем формулу:

ActiveCell.FormulaR1C1 = «=RC[-2]*RC[-1]»

Sheets(«Лист2»).Selectпереход на Лист2.

Созданный макрос необходимо выполнить, чтобы получить результат его работы. Для запуска макроса в работу имеется несколько способов:

· Использовать комбинацию клавиши Ctrl и выбранной буквы, обращая внимание на регистр русских и латинских букв.

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

· В окне редактора Visual Basic выбрать в списке процедур имя макроса и выполнить команду меню Run Sub/UserForm,

· воспользоваться кнопкой панели инструментов или нажать клавишу F5 .

Формы

Для создания диалоговых окон приложений VBA служат пользовательские формы, на которых размещают нужные элементы управления. Для добавления формы в проект выполняется команда Insert-UserForm, на экране появится пустое окно редактирования формы и панель элементов. Редактор форм является основным инструментом визуального программирования.

Язык программирования VBA

Язык программирования VBA имеет свои правила написания программного кода. Он использует свой алфавит, включающий буквы латинского алфавита и кириллицу; цифры от 0 до 9;символ подчеркивания.

Из этих символов состоят имена процедур, переменных, меток переходов, константы и команды.

В состав алфавита также входят пробелы для отделения слов друг от друга и знаки операций (+ — * / ^ = > =, (знак «не равно»).

Программный код VBA представляет собой последовательность команд, записанных по правилам языка Basic. Имена переменных, констант, процедур обозначают посредством идентификаторов, учитывая при этом, что имя должно быть содержательным, оно должно начинаться с буквы, не должно содержать точки, пробела, разделительных символов, зарезервированных слов. Зарезервированные слова ( As, Public, Then, All и др) выводятся синим цветом. Примеры правильных имен: strMyName, strФамилия. Примеры неправильных имен: 2Week, Second.Week.

Каждая команда записывается в отдельной строке по определенному правилу.

В VBA принято команду называть оператором, правило записи команды синтаксисом или форматом.

Операторы VBA имеют следующие форматы:

Объект.Метод [Параметр1] [,Параметр2]…]

Объект — имя объекта, для которого устанавливается свойство или метод. Обычно цепочка объектов начинается с объекта Application, который можно опускать. Например, ссылка Application.ActiveCell или просто ActiveCell — это обращение к активной ячейке. При работе с одной рабочей книгой объект WorkBook также можно опустить.

Свойство — характеристика объекта, подлежащая изменению.

Значение — новое состояние объекта.

Метод — команда или процедура.

Параметр — аргумент, используемый методом. Если параметров несколько, они разделяются запятой.

Знак апостроф (‘) в начале строки означает, что команда или сообщение в строке используется как поясняющий текст и игнорируется VBA. Такие строки в процедуре отмечены зеленым цветом.

Если в командной строке нарушен синтаксис или сама команда неверна, она выделяется красным цветом.

Для переноса части команды на другую строку в конце первой необходимо вставить пробел, затем символ подчеркивания ( _ ).

Sheets(“Лист1”).Selectоператор выделения рабочего листа, где Sheets(“Лист1”) — объект, Select — метод..

Sheets(“Лист1”).Range(“A1”).Value = Sheets(“Выпуск продукции”).Range(“D5”)оператор, присваивающий ячейке Лист1!А1 значение из ячейки Выпуск продукции!D5, Value — свойство.

Типы данных

В VBA все данные подразделяются на числа, текст, даты, логические и другие типы. Для числовых данных обычно применяют тип Integer (целочисленные значения в диапазоне от -32768 до +32767), Currency для хранения чисел с 4 знаками после десятичной точки и Single — для вещественных чисел одинарной точности. Для текстовых данных используется строковый тип String (содержит любые символы, строчные данные заключаются в кавычки).

Объявление переменных

Переменные — это имена, предназначенные для хранения и передачи данных. В различные моменты времени переменные могут иметь различные значения. Как правило, переменная имеет первоначальное значение, которое меняется в процессе работы подпрограммы. Имя переменной связывает ее с областью памяти, в которой хранится значение. Перед использованием переменной в программе ее желательно объявить с помощью оператора Dim. При объявлении переменных указывается ее имя и тип, который определяет способ представления переменной. Например, текстовая переменная имеет тип String, переменная целого числа – Integer, дата — Date.

В небольших приложениях переменную можно использовать без объявления, присваивая ей какое-либо значение, но явное объявление предпочтительней.

| Dim ИмяПеременной1 [As Тип], ИмяПеременной2 [As Тип] ,

Dim — ключевое слово, которое сообщает программе имя переменной и резервирует область памяти для хранения ее значения.

ИмяПеременной — идентификатор, определяющий допустимое имя.

As — ключевое слово для определения типа.

При определении переменной после ввода ключевого слова As появится список-подсказка для выбора нужного типа.

Dim tovar As String — текстовая переменная,

Dim Cost As Integer — переменная типа целое число.

Адресация ячеек в Excel

В Excel ячейка, строка, столбец и диапазон ячеек рассматривается как один объект Range.

Для определения диапазона используются различные средства, задаваемые с помощью следующих свойств и методов.

Range — свойство, определяющее диапазон ячеек ;

Cells — свойство, позволяющее выбирать ячейки рабочего листа;

ActiveCell — свойство, возвращающее одну активную ячейку;

Selection — метод, возвращающий выделенный объект.

Для доступа к диапазону ячеек чаще всего используются свойства Range и Cells.

Для ссылки на ячейки используется два формата:

Формат A1 (обычный). Ссылка состоит из имени столбца и номера строки. Например, D4. Ссылка может быть относительной(D4) и абсолютной ($D$4). Ссылка может указывать диапазон ячеек. Полный адрес диапазона может включать имя рабочего листа.

Формат R1C1. В данном формате R задает номер строки, C – номер столбца, ссылка является абсолютной. Для указания относительной ссылки задается смещение по отношению к активной ячейке. Смещение указывается в квадратных скобках, знак указывает направление смещения. Например, R[-2]C — ссылка на ячейку, расположенную на 2 строки выше в том же столбце. R[2]C[3] — ссылка на ячейку, расположенную на 2 строки ниже и 3 столбца правее. Ссылка на одиночную ячейку имеет вид:

[Объект.] Range (“адрес ячейки”).Для свойства Range в качестве аргумента используется любая ссылка в формате A1. Например, WorkSheets(“Лист1”).Range(“A7”)=34 или для текущего листа Range(“A7”)=34 — запись в ячейку A7 числа 34.

[Объект.] Cells( , ).Свойство используется для доступа к отдельной ячейке. В качестве аргументов указываются номер строки и столбца. Например, для ввода числа 34 в ячейку Лист1!A7, необходима команда: Sheets(1).Cells(7, 1). Value=34

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

Пример. Нужно поместить число 3500 в ячейку Прейскурант!D3. Для этого напишем процедуру с неявным объявлением переменных: i — для номера строки и j – для номера столбца.

Sub Ввод()

i =3

j =4

Sheets(“Прейскурант”).Cells(i, j). Value=3500

End Sub

Для указания диапазона можно использовать разные способы. Например, для диапазона A1:D7 применимы ссылки: Range(Cells(1,1), Cells(7,4)) или Range( “A1:D7”), для отдельно стоящих ячеек можно задать перечисление: Range(“A1,B2,C3,D4”) или Range(“A2:C4,D4:D8”).

Ссылка на основную публикацию
Adblock
detector