Макросы в excel: инструкция для чайников, что это, как их сделать

Как написать макрос в excel на языке программирования vba

Создание кнопки для запуска макросов в панели инструментов

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

  1. Кнопка в панели инструментов в MS Excel 2003 и более старше. Вам нужно в меню «Сервис» в пункте «Настройки» перейти на доступную вкладку «Команды» и в окне «Категории» выбрать команду «Настраиваемая кнопка» обозначена жёлтым колобком или смайликом, кому как понятней или удобней. Вытащите эту кнопку на свою панель задач и, нажав правую кнопку мыши по кнопке, вызовите ее контекстное меню, в котором вы сможете отредактировать под свои задачи кнопку, указав для нее новую иконку, имя и назначив нужный макрос.
  2. Кнопка в панели вашего быстрого доступа в MS Excel 2007 и более новее. Вам нужно клацнуть правой кнопкой мышки на панели быстрого доступа, которое находится в верхнем левом углу окна MS Excel и в открывшемся контекстном меню выбираете пункт «Настройка панели быстрого доступа». В диалоговом окне настройки вы выбираете категорию «Макросы» и с помощью кнопки «Добавить» вы переносите выбранный со списка макрос в другую половинку окна для дальнейшего закрепления этой команды на вашей панели быстрого доступа.

Корректируем макрос

Созданный макрос можно изменить. Самая распространенная причина, которая приводит к такой необходимости – сделанные при записи ошибки. Вот как можно отредактировать макрос:

Нажимаем кнопку “Макросы” (или комбинацию Ctrl+F8).
В появившемся окошке выбираем наш макрос и щелкаем “Изменить”.
На экране отобразится окно редактора “Microsoft Visual Basic”, в котором мы можем внести правки. Структура каждого макроса следующая:
открывается с команды “Sub”, закрывается – “End Sub”;

после “Sub” отображается имя макроса;
далее указано описание (если оно есть) и назначенная комбинация клавиш;
команда “Range(“…”).Select” возвращает номер ячейки. К примеру, “Range(“B2″).Select” отбирает ячейку B2.
В строке “ActiveCell.FormulaR1C1” указывается значение ячейки или действие в формуле.

Давайте попробуем скорректировать макрос, а именно, добавить в него ячейку B4 со значением 3

В код макроса нужно добавить следующие строки:
Для результирующей ячейки D2, соответственно, тоже нужно изменить начальное выражение на следующее:.Примечание: Обратите внимание, что адреса ячеек в данной строке (ActiveCell.FormulaR1C1) пишутся в стиле R1C1.
Когда все готово, редактор можно закрывать (просто щелкаем на крестик в правом верхнем углу окна).
Запускаем выполнение измененного макроса, после чего можем заметить, что в таблице появилась новая заполненная ячейка (B4 со значением “3”), а также, пересчитан результат с учетом измененной формулы.
Если мы имеем дело с большим макросом, на выполнение которого может потребоваться немало времени, ручное редактирование изменений поможет быстрее справиться с задачей.
Добавив в конце команду мы можем ускорить работу, так как во время выполнения макроса, изменения на экране отображаться не будут.
Если потребуется снова вернуть отображение на экране, пишем команду: .

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

Способы создания макросов в Excel

В Excel и других программах Microsoft Office макросы создаются в виде кода на языке программирования VBA (Visual Basic for Applications). Этот язык разработан в Microsoft специально для программ компании — он представляет собой упрощённую версию языка Visual Basic. Но это не значит, что для записи макроса нужно уметь кодить.

Есть два способа создания макроса в Excel:

  • Написать макрос вручную.
    Это способ для продвинутых пользователей. Предполагается, что они откроют окно Visual Basic в Еxcel и самостоятельно напишут последовательность действий для макроса в виде кода.
  • Записать макрос с помощью кнопки меню Excel.
    Способ подойдёт новичкам. В этом варианте Excel запишет программный код вместо пользователя. Нужно нажать кнопку записи и выполнить все действия, которые планируется включить в макрос, и после этого остановить запись — Excel переведёт каждое действие и выдаст алгоритм на языке VBA.

Разберёмся на примере, как создать макрос с помощью второго способа.

Допустим, специальный сервис автосалона выгрузил отчёт по продажам за три месяца первого квартала в формате таблиц Excel. Эти таблицы содержат всю необходимую информацию, но при этом никак не отформатированы: колонки слиплись друг с другом и не видны полностью, шапка таблицы не выделена и сливается с другими строками, часть данных не отображается.

Так выглядят таблицы с продажами автосалона в первоначальном видеСкриншот: Skillbox Media

Переменные

Переменная предназначена для хранения определенного значения, которое может быть изменено, либо получено путем её вызова.

Синтаксис:

Пример переменной:

Переменная состоит из наименования , которое может называться как вам нравится, например, , , , и т.п. А также указывается тип данных, в приведенном примере , т.е. переменная может хранить любое число от -32768 до 32767. Тип данных необходимо объявлять для уменьшения нагрузки на компьютер (чтобы код занимал меньше оперативной памяти) и соответственно более быстрого выполнения макроса. Типы данных, возможность хранения и занимаемая ими оперативная память приведена в таблице:


Типы данных с значениями

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

Т.е. переменной присвоено значение . Чтобы его получить – достаточно указать имя переменной:

При выполнении данного кода получим значение «18», присвоенное переменной Age ранее:

Код макроса на VBA Excel

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

Примечание! По умолчанию данной вкладке в Excel 2010 может и не быть, чтобы ее отобразить нажмите правой кнопкой по ленте пункт меню «Настройка ленты»

затем, в правой области поставьте галочку напротив пункта «Разработчик»

После вкладка разработчик станет отображаться на ленте.

Далее, когда Вы откроете вкладку разработчик и нажмете кнопку «Макросы» у Вас отобразится окно создания макроса, Вы пишите название макросы и жмете «создать».

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

Sub Карточка()
'Книга
NewBook = ""
' Путь, где будут храниться наши карточки
' Т.е. в той папке, откуда запустился файл с макросом
Path = ThisWorkbook.Path
' Выбираем лист с данными
Sheets("Данные").Select
' Запускаем цикл, скажем на 100000 итераций
' Начиная со второй строки, не учитывая заголовок
For i = 2 To 100000
' Выйдем из него, когда фамилии закончатся, т.е. строки
If Cells(i, 1).Value = "" Then
        i = 100000
    Exit For
End If
' Имя файла карточки, назовем по фамилии
Name_file = Path & "\" & Sheets("Данные").Cells(i, 1).Value & ".xls"
‘Выбираем лист с шаблоном
Sheets("Шаблон").Select
' Присваиваем значения нашим ячейкам, по именам которые мы задавали
    Range("fio").Value = Sheets("Данные").Cells(i, 1).Value & " " & _
        Sheets("Данные").Cells(i, 2).Value & " " & Sheets("Данные").Cells(i, 3).Value
    Range("number").Value = Sheets("Данные").Cells(i, 4).Value
    Range("addres").Value = Sheets("Данные").Cells(i, 5).Value
    Range("dolgn").Value = Sheets("Данные").Cells(i, 6).Value
    Range("phone").Value = Sheets("Данные").Cells(i, 7).Value
    Range("comment").Value = Sheets("Данные").Cells(i, 8).Value
    ' Копируем все
    Cells.Select
    Selection.Copy
    ' Создаем новую книгу или делаем ее активной 
    If NewBook = "" Then
        Workbooks.Add
        NewBook = ActiveWorkbook.Name
    Else
        Workbooks(NewBook).Activate
        Cells(1, 1).Select
    End If
    ' Вставляем данные в эту книгу
    Application.DisplayAlerts = False
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ' Сохраняем с нашим новым названием
    ActiveWorkbook.SaveAs Filename:= _
    Name_file, FileFormat:=xlExcel8, _
    Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
    CreateBackup:=False
    NewBook = ActiveWorkbook.Name
    Application.DisplayAlerts = True
    ' Снова активируем файл с макросом и выбираем лист
    Workbooks("Макрос.xls").Activate
    Sheets("Данные").Select
' Переходим к следующей строке
Next i
' Закроем книгу
Workbooks(NewBook).Close
' Выведем сообщение об окончании
MsgBox ("Выполнено!")
End Sub

Теперь осталось выполнить этот макрос, для этого откройте вкладку разработчик->макросы->выполнить наш макрос:

и после выполнения у Вас в той же папке появится вот такие файлы

Вот с таким содержимым:

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

Нравится26Не нравится1

Куда добавить код в редакторе VB

Я надеюсь, что теперь у вас есть общее представление о том, что такое VB Editor и какие в нем части.

В этом разделе этого руководства я покажу вам, где добавить код VBA в редактор Visual Basic.

Есть два места, где вы можете добавить код VBA в Excel:

  1. Окно кода для объекта. Этими объектами могут быть рабочая книга, рабочий лист, пользовательская форма и т. Д.
  2. Окно кода модуля.

Окно кода модуля против окна кода объекта

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

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

В данном случае триггер открывает книгу.

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

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

Связанный: Узнайте больше о событиях в VBA.

Напротив, код в модуле должен выполняться вручную (или его также можно вызывать из других подпрограмм).

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

Добавление кода VBA в модуль

При записи макроса автоматически создается модуль и вставляется в него код, однако при использовании средства записи макросов существуют некоторые ограничения. Например, он не может использовать циклы или условия If Then Else.

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

Модуль может использоваться для хранения следующих типов кодов VBA:

  1. Декларации: Вы можете объявлять переменные в модуле. Объявление переменных позволяет указать, какой тип данных может содержать переменная. Вы можете объявить переменную только для подпрограммы или для всех подпрограмм в модуле (или всех модулях)
  2. Подпрограммы (процедуры): Это код, в котором есть шаги, которые вы хотите выполнить с помощью VBA.
  3. Функциональные процедуры: Это код, который возвращает одно значение, и вы можете использовать его для создания пользовательских функций (также называемых пользовательскими функциями или UDF в VBA).

По умолчанию модуль не является частью книги. Вам необходимо вставить его перед использованием.

Добавление модуля в редактор VB

Ниже приведены шаги по добавлению модуля:

  1. Щелкните правой кнопкой мыши любой объект книги (в котором вы хотите установить модуль).
  2. Наведите курсор на опцию Вставить.
  3. Щелкните по модулю.

Это мгновенно создаст папку с именем Module и вставит объект с именем Module 1. Если у вас уже есть вставленный модуль, вышеупомянутые шаги будут вставлять другой модуль.

После того, как модуль вставлен, вы можете дважды щелкнуть объект модуля в Project Explorer, и он откроет для него окно кода.

Теперь вы можете скопировать и вставить код или написать его самостоятельно.

Удаление модуля

Ниже приведены шаги по удалению модуля в Excel VBA:

  1. Щелкните правой кнопкой мыши модуль, который хотите удалить.
  2. Нажмите на опцию «Удалить модуль».
  3. В открывшемся диалоговом окне нажмите Нет.

Примечание. Вы можете экспортировать модуль перед его удалением. Он сохраняется как файл .bas, и вы можете импортировать его в другой проект. Чтобы экспортировать модуль, щелкните модуль правой кнопкой мыши и выберите «Экспорт файла».

Добавление кода в окно объектного кода

Чтобы открыть окно кода для объекта, просто дважды щелкните по нему.

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

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

-вниз справа

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

Примечание: эти события относятся к объекту. Когда вы откроете окно кода для книги, вы увидите события, связанные с объектом книги. Когда вы откроете окно кода для рабочего листа, вы увидите события, связанные с объектом рабочего листа.

О чем эта книга

Вы, наверное, уже знаете, что VBA — это язык программирования, встроенный во множество программ, от приложений Microsoft Office, Microsoft Project, Visio и AutoCAD до многочисленных специализированных приложений, предназначенных для управления производственными процессами, учета финансовых ресурсов или информационной поддержки клиентов.

В этой книге рассмотрены все существенные аспекты программирования в VBA. Здесь вы найдете достаточно полную информацию по следующим темам:

* использование преимуществ визуальных средств программирования VBA;

* запись и редактирование макросов;

* запуск VBA-программ из других приложений;

* создание приятных на вид диалоговых окон и других элементов интерфейса;

* работа с объектами, которая станет ключом к использованию всей силы VBAt приложений.

В настоящей главе рассмотрены версии VBA с версии 6 по 6.3 (VBA6.3 входит в состав приложений Microsoft Office ХР). Согласно данным компании Microsoft, все версии VBA, начиная с версии 6 и заканчивая версией 6.3, с точки зрения программиста совершенно идентичны.

Компания Microsoft исправила некоторые ошибки, улучшила производительность, но способы написания программного кода или создания диалоговых окон не изменились. Поэтому, когда я говорю о VBA б, это касается как VBA 6.0 и VBA 6.3, так и всех промежуточных версий.

Есть несколько причин, по которым панель инструментов может не появиться в Excel на вкладке НАДСТРОЙКИ

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

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

Решение проблемы : перед запуском скачанного файла надстройки, необходимо:

  • найти скачанный файл надстройки в папке (обычно это папка «Загрузки»)
  • щелкнуть правой кнопкой мыши на файле — Свойства- ставим галочку Разблокировать- ОК
  • и только после этого запускать

Это связано с недавним изменением политики безопасности в приложениях Office (скачанные из интернета файлы с макросами, не будучи предварительно разблокированными, запускаются без макросов)

Причина : антивирус повредил файл надстройки при проверке

ЭТО НАИБОЛЕЕ ЧАСТО ВСТРЕЧАЮЩАЯСЯ ПРОБЛЕМА В 2018 — 2020 ГОДАХ Даже если вам кажется, что у вас нет антивируса, наверняка он есть, — например, встроенный в систему Защитник Windows (он же Windows Defender)

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

ВАЖНО: убедитесь, что антивирус никак не реагирует на скачивание и запуск надстройки. Если какое-то предупреждение от антивируса выскочило — с вероятностью 90%, антивирус повредил файл надстройки, и надстройка не запустится

Причина : в настройках безопасности Excel заданы ограничения

Когда может случиться: в новых версиях Office такое иногда имеет место быть

Решение проблемы : нажимаем в меню Excel Файл — Параметры — Центр управления безопасностью, и потом справа кнопку Параметры центра управления безопасностью . . В появившемся окне в левом столбце есть пункты Надёжные расположения и Надёжные документы. По очереди заходим в каждый из этих разделов, и ставим галочки «Отключить все надёжные расположения» и «Отключить надёжные документы». Теперь закрываем Excel, и пробуем снова запустить надстройку. После этого Excel не будет считать надстройку ненадежной, только потому что она расположена не в той папке.

Причина : надстройка не запустилась вместе с Excel

Когда может случиться: при повторных запусках (когда до этого всё работало)

Решение проблемы : убедитесь, что надстройка запущена. Для этого, найдите файл надстройки в папке, и запустите его двойным щелчком. Если надстройка запускается автоматически (включена опция автозапуска в О программе — Опции), убедитесь, что вы не перемещали и не переименовывали файл надстройки.

Причина : макросы в Excel отключены в режиме «без уведомлений» Excel просто молча отключает все макросы во всех файлах.

Когда может случиться: при первом запуске скачанной надстройки Встречается очень редко. По умолчению, макросы отключены «с уведомлением», т.е. Excel спрашивает, нужно ли включить макросы для каждого запускаемого файла с макросами.

Решение проблемы : нужно включить макросы в Excel Нажимаем в меню Excel Файл — Параметры — Центр управления безопасностью, и потом справа кнопку Параметры центра управления безопасностью . . В появившемся окне в левом столбце выбираем пункт Параметры макросов, и справа выбираем опцию «Включить все макросы»

Макросы – это инструмент для создания команд в приложении Microsoft Excel, которые позволяют значительно сократить время на выполнение задач, автоматизировав процесс. Но, в то же время, макросы являются источником уязвимости, которой могут воспользоваться злоумышленники. Поэтому, пользователь на свой страх и риск должен решить применять данную возможность в конкретном случае, или нет. Например, если он не уверен в благонадежности открываемого файла, то лучше макросами не пользоваться, ведь они могут послужить причиной заражения компьютера вредоносным кодом. Учитывая это, разработчики предоставили возможность пользователю самому решать вопрос включения и отключения макросов.

Очистка видов запасов

В ERP бывает (у меня было 3 раза в разных организациях), что переходят от учет видов запасов с общего по организации на учет видов запасов по группам финансового учета номенклатуры (группа устанавливается устанавливается в карточке номенклатуры). При этом работа уже идет, документы остатков и производства введены в базе. Итак, поменяли учет видов запасов по группам фин. учета номенклаутры и начинают формировать проводки или еще какие-то операции, но теперь что-то не заполняется в проводках или остатки расходятся, вот тебе раз…
В этом случае нужно очищать скрытые таблицы с видами запасов в документах и перепроводить документы в хронологическом порядке, чтобы виды запасов установились корректно в соответсвтии с группами фин учета номенклатуры. Это обработка и делает.

1 стартмани

Пример 4

Следующая процедура «Sub» читает содержимое ячеек из колонки А другого листа, имеющего название «Sheet2» и с этими значениями осуществляет арифметические операции. Результат вычислений пишется в колонке А текущего листа.

Этот пример показывает:

  1. Как объявлять переменные.
  2. Объекты Excel.
  3. Цикл Do Until. 
  4. Доступ к листам электронных таблиц и диапазонам ячеек с текущей книги.

‘ Подпрограмма, запускающая цикл через значения в колонке А текущего листа

‘ «Sheet2», perform arithmetic operations on each value, and write the

‘ result into Column A of the current Active Worksheet («Sheet1»)

Sub Transfer_ColA()

Dim i As Integer

Dim Col As Range

Dim dVal As Double

‘ Установить переменную Col в колонку А листа 2

Set Col = Sheets(«Sheet2»).Columns(«A»)

i = 1

‘ Прохождение цикла через каждую ячейку колонки ‘Col’ до тех пор, пока

‘ не будет обнаружена пустая ячейка

Do Until IsEmpty(Col.Cells(i))

‘ Применение арифметических операций к значению текущей ячейки

dVal = Col.Cells(i).Value * 3 — 1

‘ Команда ниже копирует результат в колонку А

‘ текущего активного листа — без уточнения названия активного листа

Cells(i, 1) = dVal

i = i + 1

Loop

End Sub

Как вручную установить скачанный файл обновления

Перед обновлением убедитесь что уровень заряда батареи более 50%. Также категорически нельзя выключать телефон во время процесса обновления.

1 вариант: Перенесите загруженную прошивку в память телефона, перейдите в диспетчер файлов и выберите скачанную прошивку, затем нажмите кнопку «Обновить сейчас» и дождитесь, пока обновление завершится успешно.

2 вариант: Перенесите загруженную прошивку в память телефона или на SD-карту, затем выключите телефон. Нажмите и удерживайте кнопки питания и уменьшения громкости, пока ваш телефон не перейдет в режим рекавери. Выберите «Install from storage» и найдите прошивку с телефона или с SD-карты. Нажмите на прошивку и подтвердите обновление.

Преимущества макросов VBA в Excel

Если VBA сложнее, чем запись макроса, зачем вам его использовать? Короткий ответ: вы получаете гораздо больше возможностей от макросов VBA.

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

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

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

Давайте посмотрим на простой макрос VBA, чтобы увидеть, как он работает.

Давайте рассмотрим объектную модель Excel

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

Основные объекты это:

  • Application — непосредственно приложение Excel (по аналогии это коробка Lego);
  • Workbook — рабочая книга Excel (это например один из видов деталей Lego);
  • Worksheet — рабочий лист Excel (группа деталей, которая составляет вид деталей Lego);
  • Range — диапазон ячеек (или одна ячейка) рабочего листа Excel (это уже конкретные детали каждой группы деталей Lego).

Все объекты имеют свои свойства и методы.

Свойство — это какая либо характеристика объекта (например общие свойства, такие как Name — есть у всех объектов, некоторые свойства имеют только определенные объекты, свойство Color (цвет) могут иметь такие объекты как Range и Font и т.д.).

Методы — это действия, которые вы пожете делать с объектами. Это может быть переименование объекта (рабочей книги, рабочего листа, диапазона ячеек), изменение цвета, размера шрифта и т.д.

Давайте рассмотрим каждый из этих объектов и их свойства и методы

Для того чтобы войти в редактор VBA вам нужно нажать на комбинацию клавиш Alt+F11 или добавив на ленту приложения вкладку «Разработчик» нажать на кнопку Visual Basic

Чтобы на вашей ленте появилась вкладка «Разработчик» вам нужно выполнить следующие действия

1. Перейдите на вкладку «Файл» — выделено красной рамкой

2 — Выберите «Параметры»

3. Выберите «Настроить ленту»

1. Перейдите на вкладку «Файл» — выделено красной рамкой

Application — это так сказать корневой объект в приложении Excel.

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

Введите для примера этот код:

После запуска кода у вас будет вот такой результат

Обращаться к рабочей книге можно следующим образом:

  1. Напрямую с помощью команды ThisWorkbook;
  2. Назначив переменную, которой будет присваиваться значение соответствующее рабочей книге.

Примеры:

Этот пример выводит на экран сообщение с названием рабочей книги.

Аналогично имя книги можно получить следующим образом:

Здесь мы выполнили следующие действия:

1. создали переменную Dim wb As Workbook

2. присвоили ей значение текущей рабочей книги: wb = ThisWorkbook

3. вывели в окно имя этой рабочей книги: MsgBox wb.Name

Объект Workbookотносится к классу Workbooks. Используя этот класс, мы можем определить количество открытых рабочих книг и получить имя каждой рабочей книги. Это может пригодится в случае, когда вам необходимо выполнить например в одной книге получить какое либо значение и вставить это значение в другую книгу.

Примеры:

В этих двух строчках такой смысл:

в первой строке мы задаем переменную wb, которой будут присваиваться значения рабочих книг

во второй строке инициируется цикл, который можно перевести так:

For (Для) Each (Каждой) wb In (В) Workbooks (Классе «Рабочие книги»)

с помощью которого последовательно перебираются все открытые файлы Excel и их имена выводятся в окно сообщения.

WorkSheet — объект «Рабочий лист»

У этого объекта как и у рабочей книги есть имя. Также как и с рабочей книгой, используя класс WorkSheets можно получить имена всех рабочих листов в рабочей книге и поочередно перейти к каждому листу.

Пример:

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

Range — объект ячейка (диапазон ячеек)

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

Вот несколько примеров работы с ячейками.

1. Получение адреса выделенной ячейки (диапазона ячеек)

2. Вставить в каждую ячейку выделенного диапазона значение 5

В этом примере также присутствует код «Цикла»

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

В этой статье мы рассмотрели самые основные объекты приложения Excel и самые рассмотрели как получить некоторые свойства этих объектов, а также поменять содержимое объекта Range. Более подробно со свойствами и методами работы с объектной моделью приложения Excel мы будем рассматривать в других статьях канала.

Написание макросов в Excel

Код макроса Excel написанный на языке Visual Basic for Application (VBA), а его выполняет инструмент приложения, к которому он присоединен. Большинство этих инструментов не доступно на уровне окна программы Excel. Как написать макрос.

Теперь продемонстрируем на примере информацию о том, как писать, редактировать и выполнять код макроса.

Чтобы написать макрос:

  1. Откройте рабочую книгу Excel, в которой необходимо использовать макрос: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11.

Перед началом работы в редакторе следует сделать простую настройку. Выберите инструмент в редакторе Visual Basic: «Tools»-«Options». И на вкладке «Editor» активируйте опцию «Require Variable Declaration». Это позволит реализовать автоматическое заполнение инструкций Options Explicit в начале каждого ново созданного кода. А в поле ввода «Tab Width:» укажите значение 2 вместо 4-х. Это позволит уменьшить ширину кода. Данная настройка редактора распространяется на все листы, но в границах одной рабочей книги.

Выберите инструмент: «Insert»-«Module» чтобы создать новый стандартный модуль для макросов. В появившемся окне модуля под текстом Option Explicit введите следующий код макроса:

Нажмите на кнопку в редакторе «Run Macro» или клавишу F5 на клавиатуре. В появившемся окне «Macros» нажмите на кнопку «Run», чтобы посмотреть результат работы макроса.

Примечание. Если в главном меню отсутствует закладка «РАЗРАБОТЧИК», тогда ее необходимо активировать в настройках: «ФАЙЛ»-«Параметры»-«Настроить ленту». В правом списке «Основные вкладки:» активируйте галочкой опцию «Разработчик» и нажмите на кнопку ОК.

Пример использования макросов №1

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

  1. Объявление переменных.
  2. Указание ссылок на ячейки Excel.
  3. Применение цикла типа For.
  4. Применение условного оператора.
  5. Отображение оповещения.

‘ Подпрограмма для поиска ячеек с адресами A1-A100 текущего активного листа

‘ и поиска ячеек, в которых содержится требуемая строка

Sub Find_String(sFindText As String)

Dim i As Integer           ‘ Целочисленная переменная, которая используется в цикле типа «For»

Dim iRowNumber As Integer   ‘ Целочисленная переменная, предназначенная для сохранения результата

iRowNumber = 0

‘ Цикл через ячейки A1-A100 до тех пор, пока не будет найдена строка ‘sFindText’ 

For i = 1 To 100

If Cells(i, 1).Value = sFindText Then

‘ Совпадение обнаружено для заданной строки

‘ Сохранение текущего номера строки и выход из цикла

iRowNumber = i

Exit For

End If

Next i

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

If iRowNumber = 0 Then

MsgBox «String » & sFindText & » not found»

Else

MsgBox «String » & sFindText & » found in cell A» & iRowNumber

End If

End Sub

Понравилась статья? Поделиться с друзьями:
Самоучитель Брин Гвелл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: