Программный код vba в excel: Начало работы с VBA в Office

Содержание

Начало работы с VBA в Office


  • Статья

  • Чтение занимает 20 мин

Постоянно возникает проблема, вызванная повторяющейся очисткой данных в 50 таблицах в Word? Хотите, чтобы при открытии определенного документа пользователи получали запрос на добавление данных? Не знаете, как быстро и легко перенести список контактов из Microsoft Outlook в таблицу Microsoft Excel?

Вы можете выполнять эти задачи и значительно больше, используя Visual Basic для приложений (VBA) для Office — простой, но мощный язык программирования, который можно использовать для расширения приложений Office.

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

Набор приложений Office обладает множеством возможностей. Существует множество разных способов создания, форматирования и управления документами, электронной почтой, базами данных, формами, электронными таблицами и презентациями. Значительное преимущество программирования на VBA в Office заключается в том, что почти каждое действие, осуществляемое с мышью, клавиатурой или диалоговым окном, можно выполнить с помощью VBA. Если действие можно выполнить с помощью VBA, значит в дальнейшем его можно легко осуществлять сотни раз. (На самом деле автоматизация повторяющихся задач — одно из наиболее частых применений VBA в Office).

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

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

Примечание.

Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.

Причины использования VBA

Есть несколько основных причин использовать программирование на VBA в Office.

Автоматизация и повторяемость

Программирование на VBA эффектно и эффективно при создании решений для устранения повторяющихся проблем форматирования и исправлений. Например, вам когда-нибудь приходилось изменять стиль абзаца в верхней части каждой страницы в Word? Или менять формат нескольких таблиц, скопированных из Excel в документ Word или электронную почту Outlook? А вносить одинаковые изменения в несколько контактов Outlook?

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

Расширения возможностей взаимодействия с пользователем

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

Взаимодействие приложений Office

Нужно скопировать все контакты из Outlook в Word и отформатировать их определенным способом? Или же нужно переместить данные из Excel в набор слайдов PowerPoint? Иногда простое копирование и вставка не работают так, как надо, или же это происходит слишком медленно. Воспользуйтесь программированием на VBA для работы с данными в двух или более приложениях Office одновременно, а затем измените содержимое в одном приложении с учетом содержимого в другом.

Другой способ

Программирование на VBA — это мощное решение, но данный подход не всегда является оптимальным. Иногда, чтобы достичь поставленных целей, имеет смысл воспользоваться другими методами.

Важнейший вопрос состоит в поиске более легкого способа. Перед запуском проекта VBA обратите внимание на встроенные инструменты и стандартные функциональные возможности. Например, если необходимо выполнить времяемкую задачу редактирования или размещения элементов, для решения проблемы следует рассмотреть возможность использования стилей или сочетания клавиш. Можете ли вы выполнить задачу единожды, а затем повторить ее с помощью сочетания клавиш CTRL+Y («Повторить»)? Можно ли создать документ правильного формата или с нужным шаблоном и затем скопировать содержимое в новый документ?

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

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

Введение в программирование на VBA

Использование кода для выполнения операций приложениями

Написание кода может казаться очень сложным и непонятным процессом. На самом деле, его базовые принципы основаны на применении повседневной логики и вполне доступны. Объекты в приложениях Microsoft Office, созданные для получения инструкций, можно сравнить с кнопками телефона. Когда вы нажимаете кнопку, телефон распознает команду и включает соответствующую цифру в набираемую последовательность. При программировании вы взаимодействуете с приложением, отправляя инструкции различным объектам. Эти объекты эффективны, но у них есть свои ограничения. Они смогут делать только то, для чего были разработаны, и выполнять только ваши инструкции.

Например, представьте себе пользователя, который открывает документ Word, вносит несколько изменений, а затем сохраняет и закрывает его. Для программирования на VBA приложение Word предоставляет объект Document. Используя код VBA, можно заставить объект Document выполнять такие действия, как открытие, сохранение и закрытие.

В следующем разделе описывается организация объектов.

Объектная модель

Разработчики организуют объекты программирования в виде иерархии, и такая иерархия называется объектной моделью приложения. В Word, например, есть объект верхнего уровня Application, который содержит объект Document. Объект Document содержит объекты Paragraph и т. д. В объектных моделях приблизительно отражено то, что вы видите в пользовательском интерфейсе. Они являются концептуальной картой приложения и его возможностей.

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

Уже существующим объектом можно управлять, задавая его свойства и вызывая его методы. Если представить объект в виде имени существительного, свойства станут прилагательными, описывающими существительное, а методы — глаголами, которые приводят его в действие. Изменение свойства приводит к модификации определенной характеристики внешнего вида или поведения объекта. Вызов одного из методов объекта заставляет последний выполнить какое-либо действие.

Код VBA в этой статье взаимодействует с приложением Office, в котором многие объекты, которыми управляет код, уже настроены и работают (например, объект Application приложения, Worksheet в Excel, Document в Word, Presentation в PowerPoint, объекты Explorer и Folder в Outlook). Узнав основную структуру объектной модели и некоторые ключевые свойства объекта Application, которые предоставляют доступ к его текущему состоянию, можно расширить возможности приложения Office с помощью VBA в Office.

Методы

В Word, например, можно изменить свойства и вызвать методы текущего документа Word с помощью свойства ActiveDocument объекта Application. Это свойство ActiveDocument возвращает ссылку на объект Document, активный в приложении Word. «Возвращает ссылку на» означает «предоставляет доступ к».

В приведенном ниже коде выполняется именно то, что сказано; т. е. активный документ приложения сохраняется.

Application.ActiveDocument.Save

Прочитайте код слева направо: «В этом приложении с документом, на который ссылается ActiveDocument, вызовите метод Save «. Имейте в виду, что Save — это простейшая форма метода; для этого не требуется никаких подробных инструкций от вас. Объекту Document дается команда сохранения (Save), а дополнительные данные вводить не нужно.

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

Application.ActiveDocument.SaveAs ("New Document Name.docx")

Значения, которые указываются в скобках после имени метода — это параметры. Здесь новое имя файла — параметр метода SaveAs.

Свойства

Для задания свойства используйте такой же синтаксис, что и для чтения свойства. В приведенном ниже коде выполняется метод для выбора ячейки A1 в Excel и затем задается свойство для записи данных в ячейку.

    Application.ActiveSheet.Range("A1").Select
    Application.Selection.Value = "Hello World"

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

В первой строке фрагмента кода указан объект Application, на этот раз это приложение Excel, а затем объект ActiveSheet, который предоставляет доступ к активному листу. После этого используется термин , который не так знаком, Range, что означает «определить диапазон ячеек таким образом». Код указывает Range создать себя только с A1 в качестве определенного набора ячеек. Другими словами, в первой строке кода объявляется объект Range и запускается метод для его выбора. Результат автоматически сохраняется в другом свойстве объекта Application с именем Selection.

Во второй строке кода задается значение свойства Value объекта Selection, равное «Hello World» и отображающееся в ячейке A1.

Самый простой код VBA может предоставлять доступ к объектам в приложении Office, с которым вы работаете, и задавать их свойства. Например, можно получить доступ к строкам в таблице Word и изменить их форматирование в скрипте VBA.

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

Макросы и редактор Visual Basic

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

Все приложения Office используют ленту. Одной из вкладок на ленте является вкладка Разработчик, где можно вызвать редактор Visual Basic и другие инструменты разработчика. Так как в Office вкладка Разработчик не показана по умолчанию, необходимо вывести ее на экран, выполнив указанные ниже действия.

Включение вкладки «Разработчик»

  1. На вкладке Файл выберите Параметры, чтобы открыть диалоговое окно Параметры.

  2. Выберите пункт Настроить ленту в левой части диалогового окна.

  3. В разделе Выбрать команды, расположенном слева в окне, выберите Часто используемые команды.

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

  5. Нажмите кнопку OK.

Примечание.

В Office 2007 показ вкладки Разработчик выполняется путем нажатия кнопки Office, выбора пункта Параметры, а затем установки флажка Показать вкладку «Разработчик» на ленте в категории Популярные диалогового окна Параметры.

После включения вкладки Разработчик можно легко найти кнопки Visual Basic и Макрос.

Рис. 1. Кнопки на вкладке «Разработчик»

Проблемы безопасности

Для защиты документов Office от вирусов и вредоносных макросов не сохраняйте код макросов в стандартных документах Office со стандартным расширением файла. Следует сохранить код в файле с особым расширением. Например, сохраняйте макросы не в стандартном документе Word с расширением DOCX, а в специальном документе Word с поддержкой макросов и расширением DOCM.

При открытии DOCM-файла система безопасности Office все равно может запретить запуск макросов в документе, сообщая или не сообщая об этом. Изучите параметры и настройки центра управления безопасностью во всех приложениях Office. По умолчанию макросы отключены, но пользователь оповещается об этом и может включить их.

Можно указать специальные папки, в которых можно выполнять макросы, создав надежные расположения, надежные документы или надежных издателей. Самый универсальный способ — использовать надежных издателей. Этот способ подходит для работы с документами, у которых есть распространяемые вами цифровые подписи. Чтобы получить дополнительные сведения о параметрах безопасности в определенном приложении Office, откройте диалоговое окно Параметры, а затем выберите Центр управления безопасностью и Параметры центра управления безопасностью.

Примечание.

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

Запись макроса

Если нажать кнопку Макрос на вкладке Разработчик, открывается диалоговое окно Макрос, которое предоставляет доступ к подпрограммам или макросам VBA, которые можно использовать из определенного документа или приложения. Кнопка Visual Basic открывает редактор Visual Basic, где можно создавать и редактировать код VBA.

На вкладке Разработчик в Word и Excel также есть кнопка Запись макроса, которая автоматически создает код VBA, позволяющий воспроизводить ваши действия в приложении. Запись макроса — это великолепное средство, которое можно использовать для изучения VBA. Читая такой код, можно понять язык VBA и объединить знания пользователя и программиста Office. Только помните о том, что этот код может быть запутанным, так как редактор макросов делает допущения насчет ваших намерений, которые не всегда точны.

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

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

  3. Выберите ячейку B1 и введите классическую первую строку программиста — Hello World. Прекратите ввод текста и посмотрите на кнопку Остановить запись. Она серая, так как Excel ждет, пока вы завершите ввод значения ячейки.

  4. Выберите ячейку B2, чтобы завершить действие в ячейке B1, а затем нажмите кнопку Остановить запись.

  5. Выберите пункт Макросы на вкладке Разработчик, выберите макрос Макрос1, если он еще не выбран, и нажмите кнопку Изменить, чтобы просмотреть код Макрос1 в редакторе Visual Basic.

Рис. 2. Код макроса в редакторе Visual Basic

Код

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

Sub Macro1()
'
' Macro1 Macro
'
'
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "Hello World"
    Range("B2").Select
End Sub

Учтите схожие моменты с предыдущим примером кода, в котором выбирается ячейка A1, и отличия от него. В этом примере кода выбирается ячейка B1, а затем строка «Hello World» записываются в активную ячейку. Кавычки вокруг текста обозначают строковое значение (в противоположность числовому значению).

Вспомните, что для отображения кнопки Остановить запись нужно было выбрать ячейку B2. Это действие также задается в строке кода. Средство записи макроса записывает каждое нажатие клавиши.

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

Когда средство записи макроса генерирует код, оно использует сложный алгоритм для определения нужных методов и свойств. Если не удается распознать данное свойство, пользователь может воспользоваться множеством ресурсов. Например, в записанном макросе средство записи макроса сгенерировало код, который ссылается на свойство FormulaR1C1. Не знаете, что это значит?

Примечание.

Помните, что объект Application используется во всех макросах VBA. Записанный код работает с приложением в начале каждой строки.

Использование справки разработчика

Выберите FormulaR1C1 в записанном макросе и нажмите F1. Система справки запустит быстрый поиск, определит, что нужные темы есть в разделе «Разработчик» справки Excel, и укажет свойство FormulaR1C1. Можно щелкнуть ссылку, чтобы прочитать описание свойства, но прежде обратите внимание на ссылку Справочник по объектной модели Excel в нижней части окна. Щелкните ее, чтобы просмотреть список объектов, которые Excel использует в объектной модели для описания листов и их компонентов.

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

Worksheets(1).Range("A1").Borders.LineStyle = xlDouble

Редактирование кода

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

Иногда самый лучший способ изучить программирование — вносить небольшие изменения в определенный рабочий код и смотреть, что получается. Попробуйте сделать это сейчас. Откройте Макрос1 в редакторе Visual Basic и измените код указанным ниже образом.

Sub Macro1()
    Worksheets(1).Range("A1").Value = "Wow!"
    Worksheets(1).Range("A1").Borders.LineStyle = xlDouble
End Sub

Совет

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

Для запуска сохранять код не требуется, поэтому вернитесь в документ Excel, выберите Макросы на вкладке Разработчик, выберите Макрос1 и нажмите кнопку Запустить. Теперь в ячейке A1 есть текст Wow!, а вокруг него размещена граница из двойных линий.

Рис. 3. Результаты первого макроса

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

Программа не работает? Читайте дальше и узнайте о методах отладки в VBA.

Советы и приемы программирования

Начните с примеров

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

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

Упрощение задачи

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

Ошибки и отладка

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

Хотя исправлять синтаксические ошибки неприятно, их легко обнаружить; редактор Visual Basic выдает сопровождающееся звуковым сигналом сообщение об ошибке и меняет цвет текста, если при вводе кода найдена синтаксическая ошибка.

Например, в VBA строковые значения должны быть заключены в двойные кавычки. Чтобы узнать, что происходит при использовании одиночных кавычек, вернитесь в редактор Visual Basic и замените строку «Wow!» в примере кода на «Wow!» (т. е. слово Wow в одинарных кавычках). Если выбрать следующую строку, среагирует редактор Visual Basic. Сообщение об ошибке «Ошибка компиляции. Ожидается: выражение» не особо помогает, но строка, содержащая ошибку, становится красной, что говорит о синтаксической ошибке в этой строке. В результате программа не будет запускаться.

Нажмите кнопку ОК и измените текст на «Wow!».

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

Например, откройте редактор Visual Basic и измените имя свойства Value на ValueX в макросе, намеренно вызывая ошибку среды выполнения, так как у объекта Range нет свойства ValueX. Вернитесь к документу Excel, откройте диалоговое окно Макрос и запустите Макрос1 еще раз. Вы увидите окно сообщения Visual Basic с описанием ошибки во время выполнения с текстом «Объект не поддерживает это свойство метода». Хотя этот текст не указан, выберите Отладка , чтобы узнать больше.

После возвращения в редактор Visual Basic будет включен специальный режим отладки, в котором желтым цветом выделяется строка кода с ошибкой. Как и ожидалось, желтым выделена строка со свойством ValueX.

Можно внести изменения в исполняемый код VBA, поэтому измените ValueX на Value и нажмите маленькую зеленую кнопку воспроизведения в меню Отладка. Программа должна запуститься без ошибок.

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

Правильное использование справочных материалов

Чтобы открыть справочник разработчика, встроенный в справку Office, откройте справку в любом приложении Office, выбрав вопросительный знак на ленте или нажав клавишу F1. Затем справа от кнопки Поиск выберите стрелку раскрывающегося меню для фильтрации содержимого. Выберите Справочник разработчика. Если на левой панели не отображается содержание, щелкните маленький значок книги, чтобы открыть его, и разверните справочник по объектной модели.

Рис. 5. Фильтрация справки разработчика применяется ко всем приложениям Office

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

Конечно, центр разработки Microsoft Office — это прекрасный портал со статьями, советами и форумами сообщества.

Поиск в форумах и группах

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

Если поискать в Интернете «форум разработчиков Office», можно найти несколько таких групп обсуждений. Можно поискать «разработка Office» или описание проблемы и найти нужные форумы, блоги и статьи.

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

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

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

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

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

  • Будьте вежливы и выражайте благодарность за все ответы.

Более подробное изучение программирования

Хотя это короткая статья, и в ней представлена лишь малая часть сведений о VBA и программировании, надеюсь, ее будет достаточно для начала.

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

Переменные

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

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

    Dim MyStringVariable As String
    MyStringVariable = "Wow!"
    Worksheets(1).Range("A1").Value = MyStringVariable

Ветвление и циклы

В примерах простых программ в этой статье код выполняется строка за строкой, сверху вниз. Реальные возможности программирования состоят в том, что можно определять, какие строки кода выполнять, в зависимости от одного или нескольких указанных условий. Эти возможности можно расширить, если повторять операцию нужное количество раз. Например, приведенный ниже пример кода расширяет Макрос1.

Sub Macro1()
    If Worksheets(1).Range("A1").Value = "Yes!" Then
        Dim i As Integer
        For i = 2 To 10
            Worksheets(1).Range("A" & i).Value = "OK! " & i
        Next i
    Else
        MsgBox "Put Yes! in cell A1"
    End If
End Sub

Введите или вставьте код в редакторе Visual Basic и запустите его. Следуйте инструкциям в появившемся окне сообщений и измените текст в ячейке A1 с «Wow!» на «Yes!», а затем выполните программу еще раз, чтобы ознакомиться с возможностями циклов. В этом примере кода показаны переменные, ветвление и циклы. Просмотрите его внимательно после выполнения и попробуйте определить, что происходит после выполнения каждой строки.

Все приложения на вкладке «Мой Office»: примеры кода

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

Создание электронной почты в Outlook

Sub MakeMessage()
    Dim OutlookMessage As Outlook.MailItem
    Set OutlookMessage = Application.CreateItem(olMailItem)
    OutlookMessage.Subject = "Hello World!"
    OutlookMessage.Display
    Set OutlookMessage = Nothing
End Sub

Помните, что бывают случаи, когда нужно автоматизировать электронную почту в Outlook или использовать шаблоны.

Удаление пустых строк на листе Excel

Sub DeleteEmptyRows()
    SelectedRange = Selection.Rows.Count
    ActiveCell.Offset(0, 0).Select
    For i = 1 To SelectedRange
        If ActiveCell.Value = "" Then
            Selection.EntireRow.Delete
        Else
            ActiveCell. Offset(1, 0).Select
        End If
    Next i
End Sub

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

Удаление пустых текстовых полей в PowerPoint

Sub RemoveEmptyTextBoxes()
    Dim SlideObj As Slide
    Dim ShapeObj As Shape
    Dim ShapeIndex As Integer
    For Each SlideObj In ActivePresentation.Slides
        For ShapeIndex = SlideObj.Shapes.Count To 1 Step -1
            Set ShapeObj = SlideObj.Shapes(ShapeIndex)
            If ShapeObj.Type = msoTextBox Then
                If Trim(ShapeObj.TextFrame.TextRange.Text) = "" Then
                    ShapeObj.Delete
                End If
            End If
        Next ShapeIndex
    Next SlideObj
End Sub

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

Копирование контакта из Outlook в Word

Sub CopyCurrentContact()
   Dim OutlookObj As Object
   Dim InspectorObj As Object
   Dim ItemObj As Object
   Set OutlookObj = CreateObject("Outlook.Application")
   Set InspectorObj = OutlookObj.ActiveInspector
   Set ItemObj = InspectorObj.CurrentItem
   Application.ActiveDocument.Range.InsertAfter (ItemObj.FullName & " from " & ItemObj.CompanyName)
End Sub

Обратите внимание, что этот код копирует открытый контакт из Outlook в открытый документ Word. Этот код работает, только если в Outlook открыт контакт.

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

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

Создание макросов и пользовательских функций на VBA

4662
14.10.2012
Скачать пример

Введение

Всем нам приходится — кому реже, кому чаще — повторять одни и те же действия и операции в Excel. Любая офисная работа предполагает некую «рутинную составляющую» — одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д. Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции. Например функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д.

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

В принципе, существует великое множество языков программирования (Pascal, Fortran, C++, C#, Java, ASP, PHP…), но для всех программ пакета Microsoft Office стандартом является именно встроенный язык VBA. Команды этого языка понимает любое офисное приложение, будь то Excel, Word, Outlook или Access.

Способ 1. Создание макросов в редакторе Visual Basic

Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно — редактор программ на VBA, встроенный в Microsoft Excel.

  • В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис — Макрос — Редактор Visual Basic (Toos — Macro — Visual Basic Editor).

  • В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer). Выбираем Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer). Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic (Visual Basic Editor)



    :

К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией  Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:

Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:

  • Обычные модули — используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert — Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:


  • Модуль Эта книга — также виден в левом верхнем углу редактора Visual Basic в окне, которое называется Project Explorer. В этот модуль обычно записываются макросы, которые должны выполнятся при наступлении каких-либо событий в книге (открытие или сохранение книги, печать файла и т.п.):


  • Модуль листа — доступен через Project Explorer и через контекстное меню листа, т.е. правой кнопкой мыши по ярлычку листа — команда Исходный текст (View Source). Сюда записывают макросы, которые должны выполняться при наступлении определенных событий на листе (изменение данных в ячейках, пересчет листа, копирование или удаление листа и т. д.)

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

Давайте разберем приведенный выше в качестве примера макрос Zamena:

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

  • Любой макрос должен заканчиваться оператором End Sub.

  • Все, что находится между Sub и End Sub — тело макроса, т.е. команды, которые будут выполняться при запуске макроса. В данном случае макрос выделяет ячейку заливает выделенных диапазон (Selection) желтым цветом (код = 6) и затем проходит в цикле по всем ячейкам, заменяя формулы на значения. В конце выводится окно сообщения (MsgBox).

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

Способ 2. Запись макросов макрорекордером

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

  • Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу — запись останавливается.

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

  • Если во время записи макроса макрорекордером вы ошиблись — ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) — во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.

Чтобы включить запись необходимо:

  • в Excel 2003 и старше — выбрать в меню Сервис — Макрос — Начать запись (Tools — Macro — Record New Macro)

  • в Excel 2007 и новее — нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)

Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:

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

  • Сочетание клавиш — будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис — Макрос — Макросы — Выполнить (Tools — Macro — Macros — Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.

  • Сохранить в… — здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:

    • Эта книга — макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel

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

    • Личная книга макросов — это специальная книга Excel  с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.

После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording).

Запуск и редактирование макросов

Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или — в старых версиях Excel — через меню Сервис — Макрос — Макросы (Tools — Macro — Macros):

  • Любой выделенный в списке макрос можно запустить кнопкой Выполнить (Run).

  • Кнопка Параметры (Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.

  • Кнопка Изменить (Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.

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

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

Кнопка на панели инструментов в Excel 2003 и старше

Откройте меню Сервис — Настройка (Tools — Customize) и перейдите на вкладку Команды (Commands). В категории Макросы легко найти веселый желтый «колобок» — Настраиваемую кнопку (Custom button):

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

Кнопка на панели быстрого доступа в Excel 2007 и новее

Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar):

Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:

Кнопка на листе

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

  • В Excel 2003 и старше — откройте панель инструментов Формы через меню Вид — Панели инструментов — Формы (View — Toolbars — Forms)

  • В Excel 2007 и новее — откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer) 

Выберите объект Кнопка (Button):

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

Создание пользовательских функций на VBA

Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция — только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).

Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert — Module и введем туда текст нашей функции:

Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка — Функция) в категории Определенные пользователем (User Defined):

После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:

 

 

 

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

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

Начинаем программировать с нуля
Часть 1. Первая программа
[Часть 1] [Часть 2] [Часть 3] [Часть 4]

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

Знакомство с редактором 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
Присвоение переменным числовых значений:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Public Sub Primer2()

‘Объявляем переменные x, y, z

Dim x, y, z

‘Присваиваем значение переменной x

x = 25

‘Присваиваем значение переменной y

y = 35

‘Присваиваем переменной z сумму

‘значений переменных x и y

z = x + y

‘Выводим информационное сообщение

‘со значением переменной z

MsgBox z

End Sub

Пример 3
Присвоение переменным строковых значений:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Public Sub Primer3()

‘Объявляем переменные x, y, z

Dim x, y, z

‘Присваиваем строку переменной x

x = «Добрый»

‘Присваиваем строку переменной y

y = «день!»

‘Присваиваем переменной z строку,

‘состоящую из строк x и y

‘с пробелом между ними

z = x & » » & y

‘Выводим информационное сообщение

‘со значением переменной z

MsgBox z

End Sub

Скопируйте примеры процедур в стандартный модуль и запустите их на выполнение.

Изменение содержимого ячеек

Для обозначения диапазонов, в том числе и отдельных ячеек, в VBA Excel имеется ключевое слово «Range». Ячейке A1 на рабочем листе будет соответствовать выражение Range("A1") в коде VBA Excel.

Пример 4

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Public Sub Primer4()

‘Объявляем переменную x

Dim x

‘Присваиваем значение переменной x

x = 125.61

‘Присваиваем ячейке A1

‘значение переменной x

Range(«A1») = x

‘Присваиваем значение ячейке B1

Range(«B1») = 356.24

‘Записываем в ячейку C1

‘сумму ячеек A1 и B1

Range(«C1») = Range(«A1») + Range(«B1»)

End Sub

Скопируйте процедуру этого примера в стандартный модуль и запустите на выполнение. Перейдите на активный рабочий лист Excel, чтобы увидеть результат.


Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Код VBA — voxt

Код Excel VBA

VBA или также известный как Visual Basic Applications — это язык программирования для Excel и не только для Excel, но и для большинства офисных программ Microsoft. Мы можем написать набор инструкций в визуальном базовом редакторе, который выполняет за нас определенные задачи, известный как код в VBA.

В Excel VBA можно найти на вкладке разработчика, поскольку он предназначен для разработчиков. Чтобы получить доступ к вкладке разработчика, нам нужно сначала включить ее, а затем мы можем получить к ней доступ с вкладки или с помощью сочетания клавиш ALT + F11. Комбинация кодов создает процедуру, которая также известна как макросы в VBA, то есть, другими словами, макросы — это набор кодов, который представляет собой язык программирования, написанный вместе.

Если вы новичок в VBA и понятия не имеете, то эта статья для вас.

Вы можете свободно использовать это изображение на своем веб-сайте, в шаблонах и т. Д. Пожалуйста, предоставьте нам ссылку с указанием авторстваКак указать авторство?Ссылка на статью должна содержать гиперссылку
Например:
Источник: Код VBA (wallstreetmojo.com)

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Включить вкладку разработчика

Первое, что вам нужно сделать, это убедиться, что вкладка разработчика в ExcelВкладка разработчика в ExcelВключение вкладки разработчика в Excel может помочь пользователю выполнять различные функции для VBA, макросов и надстроек, такие как импорт и экспорт XML, создание форм и т. Д. Эта вкладка по умолчанию отключена в Excel; таким образом, пользователю необходимо сначала включить его в меню параметров.читать далее виден на ленте.

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

  1. Перейти к файлу.

  2. Щелкните Параметры.

  3. Перейти к настройке Лента в excelЛента в ExcelЛенты в Excel 2016 разработаны, чтобы помочь вам легко найти команду, которую вы хотите использовать. Ленты организованы в логические группы, называемые вкладками, каждая из которых имеет собственный набор функций.читать далее.

  4. Проверьте вкладку разработчика справа. Выбрав параметры, нажмите ОК.

Примеры использования кода Excel VBA

# 1 — Вставить код в модуль

Чтобы написать код VBA, первое, что вам нужно сделать, это перейти на вкладку «Разработчик» и щелкнуть Visual Basic.

Вы также можете нажмите горячую клавишу ExcelНажмите сочетание клавиш ExcelЯрлык Excel — это способ более быстрого выполнения ручной задачи.читать далее «ALT + F11», чтобы открыть Visual Basic.

Когда вы откроете Visual Basic, вы увидите окно, подобное приведенному ниже.

Перейдите во вкладку «Вставить» и нажмите «Модуль».

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

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

После вставки кода его нужно выполнить.

Мы можем провести процесс выполнения двумя способами: одним нажатием сочетания клавиш. F5 или нажав зеленую кнопку запуска вверху.

Скопированный код VBA будет выполнен в вашем окне.

# 2 — Сохраните книгу с кодом VBA

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

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

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

Нажмите «Сохранить как» или нажмите клавишу F12, внизу вы увидите окно.

Введите имя файла по своему желанию, но выберите тип «Сохранить как» «Excel Macro-Enabled Workbook (* .xlsm).

Нажмите OK, чтобы сохранить книгу как книгу с поддержкой макросов.

# 3 — Назначьте макрокод фигурам

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

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

Шаг 1: Перейдите во Вставить и выберите форму по своему желанию.

Шаг 2: После выбора формы нарисовать ее на листе. В идеале подальше от данных.

Шаг 3: Щелкните правой кнопкой мыши и выберите «Редактировать текст».

Шаг 4: Добавьте слово по своему желанию. Я добавил слово «Щелкните здесь, чтобы запустить макрос».

Шаг 5: Снова щелкните правой кнопкой мыши и выберите параметр для назначения макроса.

Шаг 6: Теперь мы увидим весь список макросов. Выберите имя макроса, которое вы хотите назначить.

Шаг 7: Щелкните, ОК. Теперь эта кнопка содержит код макроса. Каждый раз, когда вы нажимаете на эту кнопку, этот код будет выполняться.

УЗНАТЬ БОЛЬШЕ >>

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Похожие записи

Как я с помощью VBA оплатил себе университет / Хабр

Большинство молодых людей, когда слышат про Excel, вспоминают сразу уроки информатики в школе или пары в универе, где нас учили выставлять ширину бортиков ячейки и как писать текст в ней по диагонали. Нам демонстрировали работу со статическими таблицами, учили их оформлять и форматировать. Но знаменитую цитату Моргана Фримана из фильма Люси: «Что, если бы мы использовали мозг на 100 процентов?» можно перефразировать на: «Что, если бы мы использовали Excel на 100 процентов?». Дело в том, что многие из вас даже не представляют на сколько это многогранная и сложная программа, функционал которой уходит далеко за пределы форматирования таблиц и подготовки простеньких графиков. Я тоже этого не представлял, пока это не стало моим основным источником заработка во время учебы в университете. И в своей статье я хочу рассказать вам про мой опыт работы с Excel и VBA, о том какие интересные вещи делают с его помощью некоторые фирмы и о том, как на этом можно неплохо подзаработать.

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

Пожалуй, в начале пару слов обо мне. В 18 лет я переехал в Германию на учебу и вопрос заработка денег сразу стал ребром. На первом курсе я не был интересен фирмам в силу отсутствия опыта и малого возраста, так что приходилось перебиваться подработками на кассах, складах и центрах обслуживания клиентов. На втором курсе я поднабрался опыта и начал искать работу по специальности на неполную ставку 16-20 часов в неделю. После недолгого поиска мне попалась достаточно интересная должность — программист VBA на Excel. В описании должности были указаны такие обязанности как разработка и поддержка Excel макросов, используемых для автоматизации работы отдела и прочие связанные с Excel вещи. Платили неплохо, а работу я себе представил достаточно интересной.

Автоматизация процессов является неотъемлемой частью любого отдела любой фирмы в любом уголке мира. Желание экономить время и средства путем автоматизации рутинных процессов вынуждает фирмы инвестировать большие суммы в софт, который перенимает на себя повседневные и откровенно скучные обязанности сотрудников. Некоторые отделы и вовсе уже невозможно представить без продвинутых систем автоматизации, например бухгалтерию или логистику. Как правило, все упирается в бюджет. В первую очередь необходимый софт получают те отделы, где он действительно жизненно необходим, а второстепенные могут годами ждать своей очереди на автоматизацию. Но желание экономить собственные силы и время при выполнении задач не уменьшается вместе с размером отдела. На помощь приходят подручные средства доступные каждому.  End-user computing – процесс, в ходе которого люди, не являющиеся программистами, создают приложения для облегчения работы себе и коллегам. В ходе этого процесса разработка происходит без участия IT отдела, собственными силами самих сотрудников. Самый популярный софт для подобного рода работы – это Microsoft Office. Офисный пакет предустановлен практически на каждом компьютере и доступен каждому. Работу с текстом поддерживает старый добрый Word, работу с базами данных медленно уходящий в прошлое Access, а вот всю возможную работу с данными, цифрами, отчетами поддерживает главный герой нашей статьи – Excel.

Придя на свой первый рабочий день, я был невероятно удивлен от увиденного. Мой отдел являлся замечательным примером того самого коллектива, который уже долгое время стоит в очереди на автоматизацию, но все никак не получает необходимого софта. Однако это не остановило их от того, чтобы делать все для облегчения своих рабочих будней. С приходом нового руководства целых 4 года и труд 2 студентов, работающих в отделе до меня, были ювелирно инвестированы в построение на базе VBA огромной системы макросов, которая по своей сути практически заменяла работникам продвинутый тематический софт. Каждый человек в отделе приложил свою руку к его формированию, кто-то описывал бизнес-процессы, кто-то занимался непосредственно программированием, а кто-то тестировкой. Общий программный ландшафт, созданный на VBA, включал в себя базу данных, множество макросов для автоматизации составления различных отчетов, макросы для обновления документов и многое-многое другое. Я и подумать не мог, что все это можно сделать при помощи VBA и Excel. Со временем я стал понимать, что гораздо легче перечислить вещи, которые на VBA сделать нельзя. Каждое новое задание становилось для меня не проблемой, а новым интересным вызовом и меня раз за разом поражало то, что практически любую офисную проблему можно было решить в VBA инвестировав минимальное количество времени в разработку. Построить базу данных с графическим интерфейсом и функцией импорта разных типов документов? Без проблем. Реализовать автоматическую сборку квартального отчета с помощью базы данных? Изи. Обновить одноразово более 100 файлов, вместо того чтобы каждый из них изменять вручную? Конечно! Примеров того, как мы использовали VBA для облегчения наших трудовых будней десятки. В случае, если вам будет интересно почитать подробнее про техническую составляющую подобных макросов, то пишите в комменты и я приступлю к написанию следующей статьи.

Так, обычная студенческая подработка на время второго курса на почти целых 2 года превратилась в мою постоянную работу, в которую я в зависимости от загруженности в университете вкладывал от 16 до 40 часов в неделю. А работы было действительно много. Каждый квартал к нам и нашим отчетам поступали новые требования от совета директоров, что требовало постоянного обновления уже существующих макросов и создания новых.

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

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

Есть ли у Excel потенциал? Есть. Никто от него не откажется в ближайшее время, и он будет использоваться как стандарт индустрии еще десятки лет.

Актуально ли это? Да. В Европе Excel в связке с VBA используется повсеместно. Даже в очень крупных фирмах, от которых такого не ожидаешь. Есть у меня товарищ, работавший в фирме с примерно 200 тысячами работников по всему земному шару, который в свои студенческие годы за очень хорошие деньги занимался автоматизацией одного из отделов этой фирмы во Франкфурте. Как я уже говорил, автоматизации хотят все, а денежки есть не у всех, отсюда и возникает спрос.

Легко ли это освоить? Да. VBA, вероятно, самый топорный и неуютный язык программирования, который я использовал. Он неудобный, для него нет красивой IDE, в нем не хватает многих привычных компонентов, но он чертовски прост. Я пришел на работу абсолютно без опыта программирования на VBA и уже через 2 с половиной месяца закрыл свой первый проект. Общее время наработки в отделе составило не более полутора месяцев с учетом того, что я работал по 2 дня в неделю. Стоит правда уточнить, что я до этого обладал достаточно богатым опытом программирования на Java и Python, но все же.

Где можно заработать? Везде, где используется Excel. Даже если у вас не выйдет найти фирму, которая бы предложила вам стабильное место работы, то можно испытать себя на достаточно развитом рынке фриланса. Там можно найти самые разные заказы, начиная от написания какой-нибудь простенькой формулы за несколько долларов до создания комплексных макросов за более интересные деньги. С этого можно начать, получить необходимый опыт и подзаработать, а после использовать как весомое конкурентное преимущество при дальнейшем трудоустройстве. Специалисты, понимающие не только экономический, но и айтишный фон задачи, способные собственноручно автоматизировать тот или иной процесс, так называемые Power users, цениться выше специалистов, понимающих только одну сторону проблемы. Знание VBA является хорошим дополнением к вашему резюме и ни раз пригодиться вам в вашей карьере.

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

Курс Softline | Макросы на VBA. Excel 20ХХ.

Трёхдневный курс Макросы на VBA. Excel 20ХХ. рассчитан на специалистов, постоянно использующих Excel в повседневной работе и желающих изучить программный код VBA и самостоятельно программировать макросы, что позволит автоматически выполнять повторяющиеся рутинные действия, сэкономит время и повысит эффективность труда. В продуктах Office есть отличный инструмент, который помогает автоматизировать рутинные операции, а также сделать вещи, которые обычным способом недоступны. Этим инструментом является встроенный язык программирования VBA (Visual Basic for Application). Курс Макросы на VBA. Excel 20ХХ поможет овладеть навыками автоматизации работы в Excel. Программа курса включает в себя теоретическую и практическую часть и доступна онлайн и в классах Учебного центра Softline в городах России (Москве, Санкт-Петербурге, Екатеринбурге, Казани, Красноярске, Нижнем Новгороде, Новосибирске, Омске, Ростове-на-Дону и Хабаровске).



Скачать программу




  • Программа курса

  • О курсе

  • Расписание и цены

  • Отзывы


Мы напомним Вам как только курс появится в расписании!




Профиль аудитории:

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

Предварительные требования:

  • Опыт работы в Excel;
  • Начальный или средний опыт создания макросов на языке программирования Visual Basic for Applications в среде Excel.

По окончании курса слушатели смогут:

  • Записывать макросы и усовершенствовать автоматически сгенерированный программный код
  • Работать с редактором Visual Basic, создавать процедуры на VBA
  • Программно обращаться к рабочим книгам, листам и диапазонам ячеек, изменять их свойства
  • Программировать многократно повторяющиеся операции с помощью циклов
  • Создавать и применять пользовательские функции
  • Применять пользовательские кнопки и события рабочих книг и листов для запуска макросов
  • Выполнять программную обработку ошибок. Отлаживать и тестировать программы
  • Устанавливать защиту проекта VBA




Модуль 1. Введение в макросы в Excel

  • Запись действий пользователя в Excel
  • Установка параметров записи макроса
  • Исправление автоматически сгенерированного кода в редакторе VBA

Модуль 2. Работа со средой разработки VBA.

  • Создание проекта, понятие модулей
  • Ввод и редактирование программного кода
  • Типы данных, переменные, константы
  • Создание, сохранение и запуск процедуры VBA

Модуль 3. Работа с объектами Excel

  • Основы объектно-ориентированного программирования
  • Модель объектов Excel, ссылки на объекты
  • Объект Workbook
  • Объекты Worksheets и Worksheet
  • Объект Range
  • Использование специальных конструкции With … End With

Модуль 4. Работа с циклами

  • Разновидности циклов в VBA
  • Цикл со счетчиком For…Next
  • Циклы с условием Do…Loop
  • Цикл по объектам For Each…Next
  • Примеры циклических операций с ячейками, листами и рабочими книгами Excel

Модуль 5. Создание пользовательской функции.

  • Отличия функций и процедур
  • Создание и вызов функций
  • Применение функций для решения задач пользователя

Модуль 6. Обработка ошибок. Отладка и тестирование программы

  • Типы ошибок
  • Обработка ошибок выполнения программы
  • Отладка и пошаговое тестирование программы

Модуль 7. Создание пользовательских форм. Основные элементы управления форм

  • Добавление формы в проект
  • Использование элементов управления: поле, надпись, кнопка
  • Создание пользовательских кнопок для запуска макросов
  • Написание процедур для элементов управления в формах

Модуль 8. Защита проекта VBA. Автоматизация запуска макросов

  • Настройка уровней безопасности
  • Защита проекта VBA
  • Использование событий рабочих книг и листов для запуска макросов




Спасибо за Ваш отзыв!

Уверены, он будет полезен!

Ваш отзыв поможет кому-то сделать выбор. Спасибо, что делитесь
опытом!






Если вы хотите пополнить свой багаж знаний, то вы пришли по адресу. IT-курс Макросы на VBA. Excel 20ХХ. от Softline по направлению Офисные приложения и курсы для пользователей в короткий срок поможет вам решать задачи повышенной сложности с тем, чтобы в дальнейшем получать удовольствие от того, чем вы занимаетесь ежедневно. Для желающих обучаться самостоятельно доступны курсы онлайн. Вдобавок в нашем учебном центре можно обучаться дистанционно под руководством опытного педагога.





Курсы Softline

Авторизованные курсы Softline — это гарантированные инвестиции в развитие вашего бизнеса и карьеры.

Подробнее

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

IT-направление Офисные приложения и курсы для пользователей является одним из востребованных среди ит-специалистов не только России, но и всего мира.

Подробнее

Курсы Офисные приложения

Ознакомьтесь также с другими курсами из направления Офисные приложения

Подробнее







Начало работы с VBA в Office

  • Статья
  • 25 минут на чтение

Вы столкнулись с повторяющейся очисткой пятидесяти таблиц в Word? Вы хотите, чтобы конкретный документ запрашивал у пользователя ввод при его открытии? Вам трудно понять, как эффективно перенести контакты из Microsoft Outlook в электронную таблицу Microsoft Excel?

Вы можете выполнять эти задачи и делать гораздо больше, используя Visual Basic для приложений (VBA) для Office — простой, но мощный язык программирования, который можно использовать для расширения приложений Office.

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

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

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

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

Примечание

Заинтересованы в разработке решений, расширяющих возможности Office на различных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любые технологии веб-программирования, такие как HTML5, JavaScript, CSS3 и XML.

Когда следует использовать VBA и почему

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

Автоматизация и повторение

VBA эффективен и эффективен, когда речь идет о повторяющихся решениях проблем форматирования или исправления. Например, вы когда-нибудь меняли стиль абзаца вверху каждой страницы в Word? Вам когда-нибудь приходилось переформатировать несколько таблиц, вставленных из Excel в документ Word или электронное письмо Outlook? Вам когда-нибудь приходилось вносить одинаковые изменения в несколько контактов Outlook?

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

Расширения взаимодействия с пользователем

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

Взаимодействие между приложениями Office

Вам нужно скопировать все контакты из Outlook в Word, а затем отформатировать их определенным образом? Или вам нужно переместить данные из Excel в набор слайдов PowerPoint? Иногда простое копирование и вставка не дает желаемого результата или выполняется слишком медленно. Используйте программирование VBA для одновременного взаимодействия с деталями двух или более приложений Office, а затем изменяйте содержимое одного приложения на основе содержимого другого.

Делать что-то по-другому

Программирование VBA — мощное решение, но не всегда оптимальный подход. Иногда имеет смысл использовать другие способы для достижения своих целей.

Критический вопрос, который нужно задать, заключается в том, есть ли более простой способ. Прежде чем приступить к проекту VBA, рассмотрите встроенные инструменты и стандартные функции. Например, если у вас есть трудоемкая задача редактирования или макета, рассмотрите возможность использования стилей или сочетаний клавиш для решения этой проблемы. Можете ли вы выполнить задачу один раз, а затем использовать CTRL+Y (повторить), чтобы повторить ее? Можете ли вы создать новый документ с правильным форматом или шаблоном, а затем скопировать содержимое в этот новый документ?

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

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

Программирование на языке VBA 101

Использование кода, чтобы заставить приложения работать

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

Например, рассмотрим пользователя, который открывает документ в Word, вносит несколько изменений, сохраняет документ, а затем закрывает его. В мире программирования VBA Word предоставляет объект Document. Используя код VBA, вы можете указать объекту Document выполнять такие действия, как открытие, сохранение или закрытие.

В следующем разделе рассматривается организация и описание объектов.

Объектная модель

Разработчики организуют программные объекты в иерархию, и эта иерархия называется объектной моделью приложения. Word, например, имеет объект Application верхнего уровня, который содержит объект Document. Объект Document содержит объекты Paragraph и так далее. Объектные модели примерно отражают то, что вы видите в пользовательском интерфейсе. Они представляют собой концептуальную карту приложения и его возможностей.

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

Когда объект существует, вы можете манипулировать им, устанавливая его свойства и вызывая его методы. Если вы думаете об объекте как о существительном, то свойства — это прилагательные, которые описывают существительное, а методы — это глаголы, которые оживляют существительное. Изменение свойства изменяет некоторое качество внешнего вида или поведения объекта. Вызов одного из методов объекта заставляет объект выполнить какое-то действие.

Код VBA в этой статье работает с открытым приложением Office, где многие объекты, с которыми работает код, уже запущены и работают; например, само приложение, рабочий лист в Excel, документ в Word, презентация в PowerPoint, объекты проводника и папки в Outlook. Как только вы узнаете базовую структуру объектной модели и некоторые ключевые свойства приложения, которые предоставляют доступ к его текущему состоянию, вы можете приступить к расширению и управлению этим приложением Office с помощью VBA в Office.

Методы

В Word, например, вы можете изменять свойства и вызывать методы текущего документа Word, используя свойство ActiveDocument объекта Application . Это свойство ActiveDocument возвращает ссылку на объект Document , который в данный момент активен в приложении Word. «Возвращает ссылку на» означает «дает вам доступ к».

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

 Приложение.АктивныйДокумент.Сохранить
 

Прочитайте код слева направо: «В этом приложении с документом, на который ссылается ActiveDocument, вызовите метод Сохранить ». Имейте в виду, что Сохранить — это простейшая форма метода; он не требует от вас никаких подробных инструкций. Вы указываете объекту Документ Сохранить , и он не требует от вас никаких дополнительных действий.

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

 Application. ActiveDocument.SaveAs ("Имя нового документа.docx")
 

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

Свойства

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

 Application.ActiveSheet.Range("A1").Выбрать
    Application.Selection.Value = "Привет, мир"
 

Первая задача в программировании на VBA — получить представление об объектной модели каждого приложения Office и прочитать синтаксис объекта, метода и свойства. Объектные модели одинаковы во всех приложениях Office, но каждая из них зависит от типа документов и объектов, с которыми она работает.

В первой строке фрагмента кода находится приложение , на этот раз Excel, а затем ActiveSheet , который обеспечивает доступ к активному рабочему листу. После этого идет менее знакомый термин Range, что означает «определить диапазон ячеек таким образом». Код дает указание Range создать себя только с A1 в качестве определенного набора ячеек. Другими словами, первая строка кода определяет объект Range и запускает для него метод, чтобы выбрать его. Результат автоматически сохраняется в другом свойстве Приложения вызвал Выбор .

Вторая строка кода задает для свойства Value Selection текст «Hello World», и это значение отображается в ячейке A1.

Самый простой написанный вами код VBA может просто получить доступ к объектам в приложении Office, с которым вы работаете, и установить свойства. Например, вы можете получить доступ к строкам таблицы в Word и изменить их форматирование в своем скрипте VBA.

Звучит просто, но может оказаться невероятно полезным; как только вы сможете написать этот код, вы сможете использовать всю мощь программирования, чтобы внести те же самые изменения в несколько таблиц или документов или сделать их в соответствии с некоторой логикой или условием. Для компьютера внесение 1000 изменений ничем не отличается от внесения 10, поэтому здесь есть эффект масштаба с большими документами и задачами, и именно здесь VBA может действительно проявить себя и сэкономить ваше время.

Макросы и редактор Visual Basic

Теперь, когда вы кое-что знаете о том, как приложения Office предоставляют свои объектные модели, вам, вероятно, не терпится попробовать вызывать методы объектов, задавать свойства объектов и реагировать на события объектов. Для этого вы должны написать свой код в том месте и таким образом, чтобы Office мог его понять; обычно с помощью редактора Visual Basic. Хотя он установлен по умолчанию, многие пользователи даже не знают, что он доступен, пока он не будет включен на ленте.

Все приложения Office используют ленту. Одной из вкладок на ленте является вкладка Developer , где вы получаете доступ к редактору Visual Basic и другим инструментам разработчика. Поскольку Office не отображает вкладку Разработчик по умолчанию, вы должны включить ее, выполнив следующую процедуру:

Чтобы включить вкладку Разработчик

  1. На вкладке Файл выберите Параметры , чтобы открыть Параметры диалоговое окно .

  2. Выберите Настроить ленту в левой части диалогового окна.

  3. В разделе Выберите команды из в левой части диалогового окна выберите Popular Commands .

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

  5. Выберите OK .

Примечание

В Office 2007 для отображения вкладки Разработчик нажмите кнопку Office, выберите Параметры , а затем установите флажок Показать вкладку Разработчик на ленте в категории Популярные в Параметры диалоговое окно .

После включения вкладки Developer легко найти кнопки Visual Basic и Macros .

Рис. 1. Кнопки на вкладке «Разработчик»

Проблемы безопасности

Чтобы защитить пользователей Office от вирусов и опасного кода макросов, вы не можете сохранять код макросов в стандартном документе Office, который использует стандартное расширение файла. Вместо этого вы должны сохранить код в файле со специальным расширением. Например, вы не можете сохранять макросы в стандартном документе Word с расширением .docx; вместо этого вы должны использовать специальный документ Word с поддержкой макросов с расширением .docm.

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

Вы можете указать определенные папки, в которых могут выполняться макросы, создав надежные расположения, надежные документы или надежные издатели. Самый переносимый вариант — использовать доверенных издателей, которые работают с распространяемыми вами документами с цифровой подписью. Для получения дополнительных сведений о параметрах безопасности в конкретном приложении Office откройте диалоговое окно Параметры , выберите Центр управления безопасностью , а затем выберите Параметры центра управления безопасностью .

Примечание

Некоторые приложения Office, например Outlook, по умолчанию сохраняют макросы в главном шаблоне на локальном компьютере. Хотя эта стратегия снижает локальные проблемы безопасности на вашем собственном компьютере при запуске собственных макросов, она требует стратегии развертывания, если вы хотите распространять свой макрос.

Запись макроса

Когда вы нажимаете кнопку Макрос на вкладке Разработчик , открывается диалоговое окно Макросы , которое дает вам доступ к подпрограммам или макросам VBA, к которым вы можете получить доступ из определенного документа или приложения. . Кнопка Visual Basic открывает редактор Visual Basic, где вы создаете и редактируете код VBA.

Еще одна кнопка на вкладке Разработчик в Word и Excel — это кнопка Запись макроса , которая автоматически генерирует код VBA, который может воспроизводить действия, выполняемые вами в приложении. Запись макроса — это потрясающий инструмент, который вы можете использовать, чтобы больше узнать о VBA. Чтение сгенерированного кода может дать вам представление о VBA и обеспечить стабильный мост между вашими знаниями Office как пользователя и вашими знаниями как программиста. Единственное предостережение заключается в том, что сгенерированный код может сбивать с толку, поскольку редактор макросов должен делать некоторые предположения о ваших намерениях, и эти предположения не обязательно точны.

Чтобы записать макрос
  1. Откройте Excel в новой книге и выберите вкладку Разработчик на ленте. Выберите Запись макроса и примите все настройки по умолчанию в диалоговом окне Запись макроса , включая Макрос1 в качестве имени макроса и Эта рабочая книга в качестве местоположения.

  2. Выберите OK , чтобы начать запись макроса. Обратите внимание, как текст кнопки меняется на Остановить запись 9.0082 . Выберите эту кнопку в тот момент, когда вы завершите действия, которые хотите записать.

  3. Выберите ячейку B1 и введите классическую первую строку программиста: Hello World. Прекратите печатать и посмотрите на кнопку Остановить запись ; он неактивен, потому что Excel ждет, пока вы закончите вводить значение в ячейку.

  4. Выберите ячейку B2, чтобы завершить действие в ячейке B1, а затем выберите Остановить запись .

  5. Выберите Macros на вкладке Developer выберите Macro1 , если он не выбран, а затем выберите Edit , чтобы просмотреть код из Macro1 в редакторе Visual Basic.

Рис. 2. Код макроса в редакторе Visual Basic

Код

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

 Субмакрос1()
'
' Макрос1 Макрос
'
'
    Диапазон("B1").Выбрать
    ActiveCell.FormulaR1C1 = "Привет, мир"
    Диапазон("B2").Выбрать
Конец сабвуфера
 

Помните о сходстве с предыдущим фрагментом кода, в котором выделялся текст в ячейке A1, и о различиях. В этом коде выбирается ячейка B1, а затем строка «Hello World» применяется к ячейке, которая стала активной. Кавычки вокруг текста определяют строковое значение, а не числовое значение.

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

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

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

Примечание

Имейте в виду, что объект Application подразумевается во всех макросах VBA. Код, который вы записали, работает с приложением . в начале каждой строки.

Использование справки разработчика

Выберите FormulaR1C1 в записанном макросе и нажмите F1. Справочная система выполняет быстрый поиск, определяет, что соответствующие темы находятся в разделе «Разработчик Excel» справки Excel, и перечисляет FormulaR1C1 свойство. Вы можете выбрать ссылку, чтобы узнать больше об этом свойстве, но прежде чем вы это сделаете, обратите внимание на ссылку Excel Object Model Reference в нижней части окна. Выберите ссылку, чтобы просмотреть длинный список объектов, которые Excel использует в своей объектной модели для описания рабочих листов и их компонентов.

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

 Рабочие листы(1).Range("A1").Borders.LineStyle = xlDouble
 

Редактирование кода

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

Иногда лучший способ научиться программированию — это внести небольшие изменения в какой-нибудь работающий код и посмотреть, что получится в результате. Попробуй это сейчас. Открыть Macro1 в редакторе Visual Basic и измените код на следующий.

 Субмакрос1()
    Рабочие листы(1).Range("A1").Value = "Вау!"
    Рабочие листы(1).Range("A1").Borders.LineStyle = xlDouble
Конец сабвуфера
 

Совет

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

Вам не нужно сохранять код, чтобы попробовать его, поэтому вернитесь к документу Excel, выберите Макросы на вкладке Разработчик , выберите Макрос1 , а затем выберите Выполнить . Ячейка A1 теперь содержит текст Wow! и имеет двойную границу вокруг него.

Рисунок 3. Результаты вашего первого макроса

Вы только что объединили запись макроса, чтение документации объектной модели и простое программирование, чтобы создать программу VBA, которая что-то делает. Поздравляем!

Не сработало? Ознакомьтесь с предложениями по отладке в VBA.

Советы и рекомендации по программированию

Начните с примеров

Сообщество VBA очень велико; поиск в Интернете почти всегда может дать пример кода VBA, который делает что-то похожее на то, что вы хотите сделать. Если вы не можете найти хороший пример, попробуйте разбить задачу на более мелкие блоки и выполнить поиск по каждому из них или попытаться придумать более распространенную, но похожую проблему. Начав с примера, вы сэкономите часы времени.

Это не означает, что бесплатный и хорошо продуманный код находится в Сети, ожидая вашего появления. Фактически, некоторый код, который вы найдете, может содержать ошибки или ошибки. Идея состоит в том, что примеры, которые вы найдете в Интернете или в документации VBA, дадут вам фору. Помните, что изучение программирования требует времени и размышлений. Прежде чем вы спешите использовать другое решение для решения вашей проблемы, спросите себя, является ли VBA правильным выбором для этой проблемы.

Упростите задачу

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

Ошибки и отладка

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

Хотя исправить синтаксические ошибки может быть сложно, их легко обнаружить; Редактор Visual Basic издает звуковой сигнал и мигает, если вы вводите синтаксическую ошибку в своем коде.

Например, в VBA строковые значения должны быть заключены в двойные кавычки. Чтобы узнать, что произойдет, если вместо этого использовать одинарные кавычки, вернитесь в редактор Visual Basic и замените «Вау!» строка в примере кода с «Вау!» (то есть слово Вау, заключенное в одинарные кавычки). Если вы выберете следующую строку, редактор Visual Basic отреагирует. Ошибка «Ошибка компиляции: Ожидается: выражение» не очень полезна, но строка, которая генерирует ошибку, становится красной, чтобы сообщить вам, что у вас есть синтаксическая ошибка в этой строке, и в результате эта программа не запустится.

Выберите OK и измените текст обратно на «Вау!».

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

Например, откройте редактор Visual Basic и измените имя свойства Value на ValueX в своем макросе, преднамеренно введя ошибку времени выполнения, поскольку объект Range не имеет свойства с именем ValueX. Вернитесь к документу Excel, откройте Macros диалоговое окно и снова запустите Macro1. Вы должны увидеть окно сообщения Visual Basic, объясняющее ошибку во время выполнения текстом «Объект не поддерживает это свойство метода». Хотя этот текст ясен, выберите Debug , чтобы узнать больше.

Когда вы возвращаетесь в редактор Visual Basic, он находится в специальном режиме отладки, в котором выделяется желтым цветом строка кода, в которой произошел сбой. Как и ожидалось, строка, содержащая свойство ValueX, выделена.

Вы можете вносить изменения в работающий код VBA, поэтому измените ValueX обратно на Value и выберите маленькую зеленую кнопку воспроизведения под меню Debug . Программа должна снова нормально работать.

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

Правильное использование справочных материалов

Чтобы открыть справочник разработчика, встроенный в справку Office, откройте справку из любого приложения Office, выбрав знак вопроса на ленте или нажав клавишу F1. Затем справа от кнопки Search выберите стрелку раскрывающегося списка, чтобы отфильтровать содержимое. Выберите Справочник разработчика . Если вы не видите оглавление на левой панели, щелкните значок маленькой книги, чтобы открыть его, а затем разверните оттуда Справочник по объектной модели.

Рис. 5. Фильтрация справки разработчика применима ко всем приложениям Office

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

Конечно, Microsoft Office Developer Center — это отличный портал для статей, советов и информации сообщества.

Поиск по форумам и группам

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

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

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

Ниже приведены несколько правил этикета, которым необходимо следовать при размещении сообщений на форуме разработчиков:

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

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

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

  • Будьте вежливы и выражайте признательность.

Идем дальше в программировании

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

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

Переменные

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

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

 Dim MyStringVariable As String
    MyStringVariable = "Вау!"
    Рабочие листы(1).Range("A1").Value = MyStringVariable
 

Ветвление и зацикливание

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

 Субмакрос1()
    Если Рабочие листы(1).Range("A1").Value = "Да!" Затем
        Dim i как целое число
        Для i = от 2 до 10
            Рабочие листы(1).Range("A" & i).Value = "OK!" & i
        Далее я
    Еще
        MsgBox "Поместите Да! в ячейку A1"
    Конец, если
Конец сабвуфера
 

Введите или вставьте код в редактор Visual Basic, а затем запустите его. Следуйте инструкциям в появившемся окне сообщения и измените текст в ячейке A1 с Wow! к Да! и запустите его снова, чтобы увидеть силу цикла. Этот фрагмент кода демонстрирует переменные, ветвление и циклы. Внимательно прочтите его после того, как увидите его в действии, и попытайтесь определить, что происходит при выполнении каждой строки.

Все мои приложения Office: код примера

Вот несколько сценариев, которые можно попробовать; каждый решает реальную проблему Office.

Создать электронное письмо в Outlook

 Sub MakeMessage()
    Dim OutlookMessage As Outlook.MailItem
    Установите OutlookMessage = Application.CreateItem(olMailItem)
    OutlookMessage.Subject = "Привет, мир!"
    OutlookMessage.Дисплей
    Установить OutlookMessage = Ничего
Конец сабвуфера
 

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

Удалить пустые строки на листе Excel

 Sub DeleteEmptyRows()
    SelectedRange = Выбор.Строки.Количество
    ActiveCell.Смещение(0, 0).Выбрать
    Для i = 1 To SelectedRange
        Если АктивСелл. Значение = "" Тогда
            Selection.EntireRow.Delete
        Еще
            ActiveCell.Смещение(1, 0).Выбрать
        Конец, если
    Далее я
Конец сабвуфера
 

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

Удалить пустые текстовые поля в PowerPoint

 Sub RemoveEmptyTextBoxes()
    Dim SlideObj как слайд
    Dim ShapeObj As Shape
    Dim ShapeIndex как целое число
    Для каждого объекта SlideObj в ActivePresentation.Slides
        Для ShapeIndex = SlideObj.Shapes.Count To 1 Шаг -1
            Установить ShapeObj = SlideObj.Shapes(ShapeIndex)
            Если ShapeObj.Type = msoTextBox Тогда
                Если Обрезать(ShapeObj.TextFrame.TextRange.Text) = "" Тогда
                    ShapeObj.Удалить
                Конец, если
            Конец, если
        Следующий ShapeIndex
    Следующий SlideObj
Конец сабвуфера
 

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

Копировать контакт из Outlook в Word

 Sub CopyCurrentContact()
   Dim OutlookObj как объект
   Dim InspectorObj как объект
   Dim ItemObj как объект
   Установите OutlookObj = CreateObject("Outlook.Application")
   Установить InspectorObj = OutlookObj.ActiveInspector
   Установите ItemObj = InspectorObj.CurrentItem
   Application.ActiveDocument.Range.InsertAfter (ItemObj.FullName & " from " & ItemObj.CompanyName)
Конец сабвуфера
 

Имейте в виду, что этот код копирует текущий открытый контакт в Outlook в открытый документ Word. Этот код работает, только если контакт в настоящее время открыт для проверки в Outlook.

Поддержка и отзывы

У вас есть вопросы или отзывы об Office VBA или этой документации? См. раздел Поддержка и отзывы Office VBA, чтобы узнать, как вы можете получить поддержку и оставить отзыв.

Персональная книга макросов (personal.xlsb)

Что такое ПЕРСОНАЛЬНАЯ КНИГА МАКРОСОВ

Где находится рабочая книга PERSONAL.XLSB

Как создать личную книгу макросов в Excel

Версия для Windows

(версия для MAC)

Зачем мне иметь личную книгу макросов?

Могу ли я поделиться своей личной книгой макросов с другими?

(A) Экспорт и импорт модуля

(B) Копирование и вставка файла Personal.xlsb в папку автозагрузки

Удаление личной книги макросов

Что делать, если я не могу записать макрос в личную книгу макросов

Скрыть его, если Excel продолжает открывать его каждый раз

Перенос других кодов VBA в личную книгу макросов

Заблокировать файл Personal.xlsb для редактирования

Наконец,

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

Но вопрос в том, где лучше всего это сделать? ПЕРСОНАЛЬНАЯ РАБОЧАЯ ТЕТРАДЬ МАКРО . Да, это рабочая книга PERSONAL.XLBS. Вот сумасшедшая вещь:

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

Разве это не УДИВИТЕЛЬНО?? И сегодня в этом посте я поделюсь с вами всем, что вам нужно знать об этом файле. Так что оставайтесь со мной в течение следующих 3-4 минут.

Что такое ЛИЧНАЯ КНИГА МАКРОСОВ

Личная книга макросов — это файл, который может быть общим местом хранения для хранения всех ваших макросов и их использования. Хотя это скрытый файл, который открывается при запуске Excel в вашей системе. И вам не нужно открывать его отдельно, когда вы хотите получить доступ к какому-либо из кодов из него. Все коды из него можно увидеть в вашем списке макросов.

Где находится рабочая книга PERSONAL.XLSB

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

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

Значит он уже есть и его не надо создавать. Второй способ — просмотреть папку XLSTART.

Примечание: Если вы поместите что-либо в папку XLSTART, она автоматически откроется при запуске Excel. Если вы используете Windows 10:

C:Users\Puneet Gogia\AppData\Roaming\MicrosoftExcel\XLSTART

И если вы используете MAC: Библиотека ▸ Контейнеры групп ▸ UBF8T346G9.Office ▸ Пользовательское содержимое ▸ Запуск ▸ Excel

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

Как создать личную книгу макросов в Excel

Создать новую личную книгу макросов очень просто. Все, что вам нужно сделать, это записать макрос, все, да, все.

Версия для Windows

Вот простые шаги, которые необходимо выполнить:

  • Прежде всего, перейдите на вкладку разработчика и нажмите кнопку «Запись макросов».
  • После этого в диалоговом окне «Запись макроса»:
    1. Введите имя макроса
    2. В раскрывающемся списке «Сохранить макрос в» выберите «Персональное диалоговое окно».
  • В конце нажмите OK.

Теперь вы можете что-то записать или просто нажать «Остановить запись».

Ваша новая «Личная книга макросов» создана. Вы можете найти новый файл PERSONAL.XLSB в папке XLSTART.

(версия для MAC)

Ниже приведены шаги по созданию личной книги макросов в версии Excel для MAC.

  • Прежде всего, перейдите на вкладку разработчика и нажмите кнопку «Запись макроса».
  • После этого введите имя макроса и выберите в раскрывающемся списке «Личная книга макросов».
  • В конце нажмите OK.

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

Зачем мне личная книга макросов?

Это настоящий вопрос…

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

Как я уже сказал, когда вы открываете свой Excel, вместе с ним открывается «PERSONAL.XLSB», поэтому ваши коды будут доступны все время, когда вы используете Excel. Так что иметь это большой WIN-WIN.

Могу ли я поделиться своей личной книгой макросов с другими?

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

(A) Экспорт и импорт модуля

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

  • Сначала откройте редактор VB, разверните дерево «Personal.xlsb» и щелкните правой кнопкой мыши модуль, который вы хотите экспортировать.
  • Теперь выберите опцию «Экспорт файла» и сохраните его на рабочем столе, а затем перенесите в новую систему.
  • Далее вам нужно импортировать этот модуль, а не редактор VB в новую систему.
  • Для этого откройте редактор VB, щелкните правой кнопкой мыши «Personal.xlsb» и выберите «Импортировать файл».
  • После этого просмотрите файл модуля и нажмите OK для импорта.

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

(B) Скопируйте и вставьте файл Personal.xlsb в папку автозагрузки

Если в новой системе, в которую вы хотите перенести все коды, нет личной книги макросов, вы можете просто скопировать и вставить файл personal. xlsb из папки автозагрузки. старой системы в стартовую папку Excel новой системы.

Да, это так.

Удалить личную книгу макросов

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

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

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

Может возникнуть ситуация, когда вы не сможете записать макрос в Личную книгу макросов. Или он не открывается при запуске Excel.

В этой ситуации вам необходимо проверить, не находится ли ваша личная книга макросов в разделе «Отключенные элементы». Если это так, то вам нужно включить его. Чтобы открыть «Отключенные элементы», перейдите на вкладку «Файл» ➜ «Параметры» ➜ «Надстройки» ➜ «Управление» ➜ «Отключенные элементы».

В этом диалоговом окне вы можете просто включить его.

Скрыть, если Excel продолжает открывать его каждый раз

Как вы знаете, каждый раз, когда вы открываете Excel, файл Personal.xlsb открывается вместе с ним автоматически, но иногда вместо того, чтобы открываться как скрытый файл, он открывается впереди.

Ну, ты можешь заставить его спрятаться. Все, что вам нужно сделать, это когда вы откроете приложение Excel, перейдите на вкладку «Вид», нажмите «Скрыть» и выберите «Личное».

В конце нажмите OK. Теперь закройте Excel и перезапустите его. Вот и все.

Перенос других кодов VBA в личную книгу макросов

Всегда лучше записать и записать код макроса в Personal.xlsb, но для всего кода, который у вас есть, до создания ЛИЧНОЙ КНИГИ МАКРОСОВ.

Это просто. Все, что вам нужно сделать, это создать новый модуль, а затем вставить туда весь код.

Блокировка Personal.xlsb для редактирования

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

  • Прежде всего, перейдите в то место, где у вас есть Personal. xlsb, щелкните правой кнопкой мыши и откройте его свойства.
  • После этого на вкладке «Безопасность» поставить галочку «Только чтение».
  • В конце нажмите ОК.

После этого вы сможете прочитать из него макрос, но не сможете сохранить в нем новый макрос.

В конце концов,

Личная книга макросов может помочь вам управлять всеми важными макросами в одном месте. Лучший способ создать файл personal.xlsb — просто записать в него макрос. Надеюсь, вы нашли этот совет по VBA, который поможет вам Изучить VBA, Faster .

А теперь скажи мне одну вещь.

Как вы управляете всеми кодами VBA, которые используете?

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

Подробнее о VBA

  • Функция, определяемая пользователем | Активировать лист с помощью VBA| Код VBA для поиска в Google| VBA ЕСЛИ | Сводная таблица с помощью VBA | Функция VBA MsgBox | Новый лист VBA | Записать макрос | Явный вариант VBA

VBA — это один из продвинутых навыков Excel.

Как автоматически добавлять серийные номера [14 лучших методов] в Excel

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

Да, они важны.

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

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

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

14 способов вставить столбец серийного номера в Excel

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

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

Method #1

Method #2

Method #3 (Fastest)

Method #4

Method #5 (My Favorite ?)

Method #6

Метод #7

Метод #8 (код VBA)

#

Метод #100265

MODES

#100265

#

.

)

Метод № 13

Метод № 14

Заключение

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

И, со всеми методами, которые вы изучили выше, не составит большого труда создать столбец серийных номеров в данных, независимо от того, в какой ситуации вы находитесь.

Надеюсь, вы нашли это полезным, но теперь скажите мне одну вещь .

Какой способ вставки серийных номеров вы предпочитаете?

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

Дополнительные руководства

Это руководство является частью нашего курса Базовые навыки работы с Excel .0756 .

Об авторе

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

Learn Excel (видео) Connect with Puneet

Учебное пособие по Excel VBA с примерами VBA в реальном времени

VBA расшифровывается как Visual Basic Analysis. Excel VBA — это язык программирования Microsoft для приложений Office, таких как MS-Excel, MS-Word и MS-Access. Макросы — это то, что использует большинство людей, пишущих код VBA.

Что такое VBA?

Visual Basic для приложений — это удобочитаемый и редактируемый программный код, который генерируется при записи макроса. Сегодня он широко используется с другими приложениями Microsoft Office, такими как MS-Word, MS-Excel и MS-Access.

Включить параметр разработчика в Excel

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

  • Щелкните правой кнопкой мыши на ленте (в любом месте), выберите параметр «Настроить ленту».
  • Перейдите в раздел «Настройка ленты» и установите флажок «Разработчик».

Интерфейс редактора VBA

Вы можете открыть интерфейс VBA с помощью сочетания клавиш ALT + F11 или перейти на вкладку «Разработчик» и щелкнуть Visual Basic.

Создание макроса Excel с помощью командной кнопки

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

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

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

  • Перейдите на вкладку «Разработчик» > «Вставка» > «Элементы управления ActiveX» > «Командная кнопка».
  • Перетащите командную кнопку на рабочий лист.

Назначение макроса командной кнопке

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

  • Щелкните правой кнопкой мыши командные кнопки и выберите «Просмотр кода».
  • Добавьте следующие строки кода, показанные ниже.
  • Закройте редактор VBA и нажмите кнопку команды на рабочем листе. Не забудьте отменить выбор режима проектирования.

Создать окно сообщений

MsgBox — это диалоговое окно в Excel, которое будет отображать сообщение на вашем листе. Чтобы создать MsgBox, добавьте следующие строки кода в командную кнопку.

Теперь при нажатии на кнопку вы получите следующее сообщение.

Создать поле ввода

Функция InputBox предлагает пользователю ввести значения и возвращает информацию, введенную в диалоговом окне.

Синтаксис: 

InputBox(приглашение[название][по умолчанию][xpos][ypos][helpfile,context])

Чтобы добавить поле ввода к вашей командной кнопке, выполните следующие действия:

  • Объявите имя переменной и сохраните вариант типа. Вариантная переменная может содержать значение любого типа.
  • Добавьте следующий код, чтобы отобразить поле ввода.
  • Теперь, когда вы нажимаете на командную кнопку, вы получите запрос на ввод значения.
  • Введите введенные данные и нажмите OK. Он введет ваш ввод в ячейку A1.

Переменные, константы и операторы в VBA

Переменные

Переменные — это типы данных, которые используются для хранения значения. Мы можем изменить переменные во время выполнения программы.

Синтаксис: Dim <<имя_переменной>> As <<тип_переменной>>

Мы можем разделить типы данных VBA на две категории:

  • Числовые типы данных: Числовые типы данных состоят из байтов, целых чисел, длинных, одинарных, двойных, валютных и десятичных чисел.
  • Нечисловые типы данных: Нечисловые типы данных состоят из строки, даты, логического значения, объекта и варианта.

Константы

Константы — это фиксированное значение, которое нельзя изменить во время выполнения программы.

Синтаксис: 

Константа <<имя_константы>> As <<тип_константы>> = <<значение_константы>>

Пример:

Когда вы нажмете на командную кнопку, вы получите следующий вывод:

Манипуляции со строками

Обработка строк — это процесс анализа, манипулирования и эффективной обработки строковых значений.

Соединение строк

Вы можете соединить две строки с помощью оператора &. Это также известно как конкатенация.

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

Левый

Ключевое слово left будет извлекать символы с крайней левой стороны строки.

Цикл If, If-Else, For и While

Если оператор

Оператор If — это условный оператор, состоящий из выражения, за которым следует другое выражение. Если условие истинно, выполняются строки кода под оператором If.

Синтаксис: 

Если(логическое_выражение) Тогда

   Выписка 1

   …..

   …..

   Выписка №

Конец, если

Пример:

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

Если-иначе

Оператор If — это условный оператор, состоящий из выражения, за которым следует другое выражение. Если условие истинно, выполняются строки под телом оператора If. Если он говорит, что условие является ложным, он выполняет операторы в Else Part.

Для цикла

Цикл For — это оператор потока управления, который позволяет пользователю написать цикл, который может выполняться многократно.

Пример:

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

Пока Цикл

В цикле while, если операторы верны, они выполняются до тех пор, пока не встретят ключевое слово Wend. Если утверждение ложно, цикл завершается и выполняется переход к следующему утверждению.

Синтаксис: 

Пока состояние(я)

   [операторы 1]

   [операторы 2]

   …

   [утверждения №]

Венд

Пример:

Функции и подпроцедуры

Функции

Функции — это многократно используемый код, который можно вызывать в любом месте программы. Вы можете использовать код снова и снова в своей программе. Чтобы создать функцию в окне VBA, перейдите в меню «Вставка» > «Модуль», и он создаст новый модуль.

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

Приведенный ниже код вызывает функцию, определенную выше: 

Результат:

Подпроцедура

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

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

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

Результат:

Получите опыт работы с новейшими инструментами и методами бизнес-аналитики с помощью магистерской программы для бизнес-аналитиков. Зарегистрируйтесь сейчас!

Заключение

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

Повысьте свою карьеру в области аналитики с помощью новых мощных навыков работы с Microsoft Excel, пройдя курс Business Analytics with Excel, который включает обучение работе с Power BI

Этот сертификационный курс по бизнес-аналитике знакомит вас с основными понятиями анализа данных и статистики, помогая принимать решения на основе данных. Это обучение знакомит вас с Power BI и углубляется в статистические концепции, которые помогут вам извлекать ценные сведения из доступных данных для представления результатов с помощью панелей мониторинга на уровне руководителей.

У вас есть к нам вопросы? Не стесняйтесь задавать их в разделе комментариев к этой статье, и наши специалисты оперативно ответят на них!

VBA в Excel (In Easy Steps)

Ниже вы можете найти 30 популярных страниц. Приятного обучения!

1 Запуск кода из модуля: Если вы новичок в Excel VBA, вам может быть трудно решить, куда поместить код VBA. В этом примере показано, как запускать код из модуля.

2 Средство записи макросов: Средство записи макросов, очень полезный инструмент, включенный в Excel VBA, записывает каждую задачу, которую вы выполняете в Excel. Все, что вам нужно сделать, это записать конкретную задачу один раз. Затем вы можете выполнять задачу снова и снова одним нажатием кнопки.

3 Функция InputBox: Вы можете использовать функцию InputBox в Excel VBA, чтобы предложить пользователю ввести значение.

4 Закрыть и открыть: Метод закрытия и открытия в Excel VBA можно использовать для закрытия и открытия книг. Помните, что коллекция Workbooks содержит все открытые в данный момент объекты Workbook.

5 Импорт листов: в этом примере мы создадим макрос VBA, который импортирует листы из других файлов Excel в один файл Excel.

6 Таблицы программирования: Используйте Excel VBA для создания двух программ. Одна программа перебирает все диаграммы на листе и превращает каждую диаграмму в круговую диаграмму. Другая программа изменяет некоторые свойства первой диаграммы.

7 Целые строки и столбцы: В этом примере показано, как выделять целые строки и столбцы в Excel VBA. Вы готовы?

8 Смещение: Свойство Смещение в Excel VBA берет диапазон, который представляет собой определенное количество строк и столбцов, отстоящих от определенного диапазона.

9 От активной ячейки к последней записи: этот пример иллюстрирует свойство End объекта Range в Excel VBA. Мы будем использовать это свойство для выбора диапазона от активной ячейки до последней записи в столбце.

10 цветов фона: изменение цвета фона в Excel VBA очень просто. Используйте свойство Interior, чтобы вернуть объект Interior. Затем используйте свойство ColorIndex объекта Interior, чтобы установить цвет фона ячейки.

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

12 Option Explicit: мы настоятельно рекомендуем использовать Option Explicit в начале вашего кода Excel VBA. Использование Option Explicit заставляет вас объявлять все ваши переменные.

13 Логические операторы. Три наиболее часто используемых логических оператора в Excel VBA: И, ИЛИ и НЕТ. Как всегда, мы будем использовать простые примеры, чтобы было понятнее.

14 Выбрать вариант: вместо нескольких операторов If Then в Excel VBA можно использовать структуру выбора варианта.

15 Цикл по определенному диапазону: используйте Excel VBA для циклического просмотра определенного диапазона. Например, когда мы хотим возвести в квадрат числа в диапазоне A1:A3.

16 До цикла: код VBA, помещенный между «До» и «Цикл», будет повторяться до тех пор, пока часть после «До» не станет истинной.

17 Удалить дубликаты: Используйте Excel VBA для удаления дубликатов. В столбце А у нас есть 10 чисел. Мы хотим удалить дубликаты из этих номеров и поместить уникальные номера в столбец B.

18 Отладка: В этом примере показано, как отлаживать код в Excel VBA.

19 Обработка ошибок: Используйте Excel VBA для создания двух программ. Одна программа просто игнорирует ошибки. Другая программа продолжает выполнение с указанной строки после возникновения ошибки.

20 Нижний индекс вне диапазона: ошибка «Нижний индекс вне диапазона» в Excel VBA возникает, когда вы ссылаетесь на несуществующий член коллекции или несуществующий элемент массива.

21 Instr: Используйте Instr в Excel VBA, чтобы найти позицию подстроки в строке. Функция Instr довольно универсальна.

22 Функция DateDiff: Функция DateDiff в Excel VBA может использоваться для получения количества дней между двумя датами.

23 Динамический массив: Если размер вашего массива увеличивается и вы не хотите фиксировать размер массива, вы можете использовать ключевое слово ReDim. Затем Excel VBA автоматически изменяет размер массива.

24 Функция, определяемая пользователем: Excel имеет большой набор функций. В большинстве случаев этих функций достаточно для выполнения работы. Если нет, вы можете использовать Excel VBA для создания собственной функции.

25 Чтение данных из текстового файла: Используйте Excel VBA для чтения данных из текстового файла. Этот файл содержит некоторые географические координаты, которые мы хотим импортировать в Excel.

26 ВПР: Используйте свойство WorksheetFunction в Excel VBA для доступа к функции ВПР. Все, что вам нужно, это одна строка кода.

27 Окно со списком: Используйте Excel VBA для размещения окна со списком на листе. Окно списка — это список, из которого пользователь может выбрать элемент.

28 Флажок: Флажок — это поле, которое можно установить для сохранения информации. Чтобы создать флажок в Excel VBA, выполните следующие шаги.

29 Кредитный калькулятор: На этой странице вы узнаете, как создать простой кредитный калькулятор в Excel VBA. Рабочий лист содержит следующие элементы управления ActiveX: две полосы прокрутки и две кнопки выбора.

30 Индикатор выполнения: узнайте, как создать индикатор выполнения в Excel VBA. Мы максимально упростили индикатор прогресса, но при этом он выглядит профессионально. Вы готовы?

Посмотреть все 300 примеров.

Основы кодирования VBA в Excel [Руководство 2022]

Нет опыта программирования? Без проблем!

Во-первых, я хочу вас поздравить, потому что, если вы тратите время на чтение этого руководства, я предполагаю две вещи: 

  1. просто жду, когда вы разблокируете

  2. Вы заметили, что большинство ваших сверстников не понимают этих возможностей, и вы хотите отличаться от них

Понимание этих двух моментов действительно дало мне мотивацию углубиться во вселенную Excel (и, в конечном итоге, в Word и PowerPoint) и добавить каждую технику, которую я смог найти, к моему виртуальному набору инструментов.

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

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

Вот план урока, который мы пройдем вместе:

Уроки VBA

  1. Урок первый: что такое VBA? Что такое макросы?
  2. Урок второй: Редактор Visual Basic
  3. Урок третий: запись макросов
  4. Урок четвертый: Самостоятельное написание кода VBA
  5. Урок пятый: куда мне идти дальше?

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

УРОК ПЕРВЫЙ: Что такое VBA? Что такое макросы?

Аббревиатура VBA расшифровывается как Visual Basic для приложений . По сути, это ответвление компьютерного языка Visual Basic, созданного Microsoft еще в 90-х годах, который позволяет программам Microsoft взаимодействовать друг с другом на основе событий или действий, происходящих в этих программах.

Этот язык используется не только в программах Office, таких как Excel и PowerPoint, но и в таких программах, как NotePad и Paint. Поскольку Microsoft создала этот язык для своих собственных приложений, его код интуитивно понятен пользователю.

Например, если вы прочитали строку кода в Excel, в которой указано  Range(«A1:B4»).ClearContents , вы можете сделать обоснованное предположение, что эта строка кода сообщает Excel очистить содержимое ячеек с A1 по Б4. Это ОГРОМНО, потому что позволяет пользователям с очень ограниченными знаниями в области компьютерного программирования или без них легко понять, как работает язык VBA.

Что такое макрос?

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

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

Макросы могут содержать код, выполняющий вычисления, копирование и вставку, изменение форматирования и множество других полезных вещей; все за миллисекунды! Большинство пользователей Office используют макросы для автоматизации рутинных задач, выполнение которых вручную (с помощью клавиатуры и мыши) занимает много времени.

Что такое функция «Тусклый»?

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

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

Dim  – это сокращение от Dimension и оператор, используемый для объявления имени и типа переменной, которую вы хотите создать.

Sub  – это сокращение от Subroutine, которое является вступительным заявлением для вашего кода. Каждый раз, когда набирается Sub, создается новый макрос или процедура. Слова «End Sub» должны быть помещены в последнюю строку кода для вашего макроса, чтобы сообщить VBA, что ваша процедура завершена. Здесь также хранятся любые макросы, которые вы записываете.

Модуль класса — это раздел для действительно продвинутых пользователей VBA. В этой области вы можете писать свои собственные классы, методы и коллекции в библиотеку VBA. Если вы новичок, я бы пока воздержался от них. Большинство разработчиков VBA никогда не будут использовать этот тип функциональности в своей карьере, но это очень мощная возможность, если это необходимо.

Функция  — VBA позволяет создавать собственные пользовательские функции. Они могут использоваться либо вашими макросами для получения определенного результата, либо их можно использовать в Строка формул Excel  для выполнения вычислений со значениями вашей ячейки.

Пользовательские формы   – это всплывающие окна, которые позволяют пользователям вводить данные или выбирать параметры. Microsoft постоянно использует их в своих приложениях. Вот некоторые из них:

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

УРОК ВТОРОЙ: Редактор Visual Basic

Редактор Visual Basic — это ваше рабочее пространство для создания кода VBA.

Доступ к редактору можно получить через вкладку разработчика или с помощью сочетания клавиш Alt + F11 .

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

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

Ниже приведены скриншоты некоторых основных окон, которые можно отобразить в редакторе Visual Basic. Некоторые из них могут не отображаться в вашем редакторе по умолчанию, и я объясню, как сделать так, чтобы они отображались в описаниях ниже. Я буду описывать редактор Excel Visual Basic, но большая часть информации может быть легко переведена в PowerPoint, Access или любой другой редактор Visual Basic программы Office.

Окно проекта

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

Обратите внимание, что на снимке экрана выше в моем приложении Excel открыты два файла: Book1 (книга) и VBHTMLMaker (надстройка). В Book1 вы можете увидеть 3 подпапки:

  • Microsoft Objects  — В этой папке находится область кода для вашей книги (ThisWorkbook) и каждая из вкладок электронной таблицы вашей книги (Sheet1).

  • Формы   – в этой папке хранятся все созданные вами пользовательские формы. Я немного коснулся этого в первом уроке, поэтому не буду здесь повторяться. Если вы не видите эту папку, вы можете добавить ее, щелкнув правой кнопкой мыши в любом месте дерева папок проектов и выбрав Вставить -> Форма .

  • Модули   — В папке модуля хранятся ваши макросы и коды функций. Если вы не видите эту папку, это означает, что в проекте, скорее всего, нет кода макроса (примечание: код может храниться в папке форм или в папке «Объекты»). Вы можете добавить эту папку, щелкнув правой кнопкой мыши в любом месте дерева папок проектов и выбрав Вставить -> Модуль .

Окно свойств

Окно свойств позволит вам изменить определенные аспекты любого объекта, формы или модуля, которые вы выделили. Обычно единственное, что я изменяю в этом окне, — это поле Имя . Это хорошая идея, потому что вы можете дать своим модулям или формам более значимое имя, чем имена по умолчанию, которые предоставляет редактор Visual Basic. Пользовательские имена в поле Name могут состоять только из одного слова.

Область записи кода

Здесь происходит волшебство! В этой области вы действительно можете писать и редактировать свой код VBA. Каждый макрос должен начинаться с оператора Sub (который открывается с помощью Sub  [ вставьте имя вашего макроса ] ( )  и закрывается с помощью End Sub ). Обратите также внимание на то, что редактор VBA окрашивает некоторые ключевые слова в несколько разных цветов. Это помогает сделать ваш код более организованным. У меня есть два основных совета, которыми я хотел бы поделиться с людьми, когда они впервые учатся писать код VBA:

  1. Использовать отступы  – Всегда старайтесь использовать отступы (с помощью клавиши Tab) в своем коде. Существуют различные методологии табулирования кода, но если вы будете последовательны и имеете смысл, это очень поможет вам, когда вы пытаетесь добавить или отладить свой код. Это также помогает, когда кто-то другой пытается помочь вам с вашим кодом.

  2. Пишите строчными буквами  – Если вы еще не заметили, в каждом слове языка VBA есть хотя бы одна заглавная буква. Как это преимущество? Что ж, редактор Visual Basic не чувствителен к регистру и любит исправлять вас, когда может. Это означает, что если вы введете «workbook», редактор автоматически изменит его на «Workbook». Мое эмпирическое правило состоит в том, чтобы печатать все в нижнем регистре, и если редактор VB не делает заглавной хотя бы одну букву, я знаю, что либо написал это слово с ошибкой, либо это слово не определено. Наличие редактора Visual Basic, исправляющего каждое слово, которое я печатаю, действительно сделало мой код менее глючным и предотвратило много разочарований на протяжении многих лет.

Непосредственное окно

Мне нравится называть эту область моим листком бумаги. Окно Immediate позволяет выполнять всевозможные тесты во время написания и запуска кода. Вы можете использовать код Debug.Print , чтобы указать VBA отправить следующую информацию в окно интерпретации. Это может быть выходное значение функции, значение ячейки или то, что установлено для текущего свойства приложения. Когда я впервые начал писать код VBA, я понятия не имел, что окно Immediate когда-либо существовало (обычно оно скрыто по умолчанию, но вы можете использовать ярлык Ctrl + g  , чтобы просмотреть его), но как только я узнал все, что он может делать, я никогда не переставал включать его функциональные возможности в свои процессы написания кода и тестирования.

Окно наблюдения

Окно наблюдения похоже на рентгеновский аппарат. Он покажет вам все данные, которые хранятся внутри переменной! Некоторые переменные (например, те, которые вы создаете в своем коде) не будут хранить очень много данных. Однако, если бы вы «наблюдали» за переменной, которая была назначена ячейке, вы бы увидели целую кучу данных (цвет шрифта, значение, высота, цвет заливки и т. д.). Это в основном полезно, когда вы пытаетесь отладить свой код и хотите понять, какое значение имеет ваша переменная в любой момент вашего кода.

Чтобы наблюдать за переменной, вам нужно выделить текст вашей переменной и нажать кнопку «Добавить наблюдение» (это значок в виде очков, расположенный на панели инструментов отладки). Затем вы должны увидеть, что ваша переменная появилась в окне Watch. Как только вы начнете выполнять свой код и загрузите значение в свою переменную, вы должны увидеть опцию (знак плюса), чтобы развернуть или расширить содержимое, которое сейчас хранится в переменной.

Вы еще не запутались?

Я знаю, что это много для понимания, но вы действительно должны использовать это как справочный лист, к которому вы можете обращаться, когда будете учиться. Вы не будете использовать все функции редактора Visual Basic при первом изучении, но полезно знать, что они из себя представляют, если кто-то, кто пытается вам помочь, ссылается на функцию в редакторе VB. Например, я впервые узнал об Immediate Window, когда продолжал видеть функцию отладки, используемую в коде, который члены сообщества на форумах Excel включали в свои кодовые решения VBA. Я понятия не имел, что делает Debug, и, поскольку мое Immediate Window было скрыто, мне потребовалось много исследований, чтобы понять, как и почему участники форума используют эту функцию.

Я буду продолжать обновлять эту страницу, так как у меня есть более подробные записи в блоге, которые я планирую написать о редакторе Visual Basic, и я обязательно буду ссылаться на них при публикации статей!

УРОК ТРЕТИЙ: Средство записи макросов

Что такое средство записи макросов?

Функция «Запись макросов» в Excel и Word — это лучший инструмент программирования, о котором вы только могли мечтать. Можно представить себе как магнитофон с 2-мя кнопками: запись и стоп. Когда функция записи макроса настроена на запись, программа записывает код и сохраняет каждое действие, которое вы выполняете в Excel или Word, в модуле VBA. Затем вы можете вернуться и посмотреть на написанный код и сделать с ним различные действия. Средство записи макросов может показаться инструментом для начинающих VBA, но даже гуру Excel будут использовать его постоянно, потому что они понимают, какую эффективность может добавить средство записи.

Как превратить действия на экране в код

Функция Запись макроса доступна на вкладке Разработчик и находится в разделе Код .

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

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

В этом диалоговом окне у вас есть несколько вариантов:

Имя макроса  [Обязательный]: рекордер всегда будет использовать имя по умолчанию в диалоговом окне, но вы можете изменить его на более значимое имя, которое я всегда рекомендую. Если вы забыли изменить имя или хотите изменить его позже, не волнуйтесь, вы всегда можете изменить имя макроса после того, как закончите запись. Разрешенное соглашение об именах должно соответствовать следующим критериям:

Клавиша быстрого доступа  [Необязательно]:  позволяет запускать или запускать записанный код с помощью сочетания клавиш. В качестве предостережения: это перезаписывает ярлыки Excel по умолчанию, поэтому в качестве наилучшей практики я всегда использую заглавную букву вместо строчной. Например, вместо сочетания клавиш для макроса Ctrl + C (что, конечно, является универсальным сочетанием клавиш для копирования), я бы использовал Ctrl + Shift + C или Ctrl + C. вы определяете место, где диктофон будет хранить код. Все открытые в данный момент рабочие книги будут отображаться в раскрывающемся списке вместе с вашим личным файлом макроса (если он у вас настроен)

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

После того, как вы заполните диалоговое окно по своему вкусу и можете нажать ОК. Каждое ваше движение теперь записывается #BigBrother! После того, как вы закончите выполнение любых действий, которые вы хотите закодировать, просто нажмите кнопку «Остановить запись» (на вкладке «Разработчик» или внизу в левом углу окна)

Не только для Excel

Средство записи макросов также можно найти и использовать в  Microsoft Word .

Эта функция была доступна в PowerPoint несколько итераций программного обеспечения назад, однако считается, что команда Microsoft Office, к сожалению, удалила эту функцию, поскольку она содержала слишком много ошибок. Это было огромной ошибкой, так как даже глючная программа записи макросов была бы полезна пользователям, пытающимся научиться писать VBA для PowerPoint (тем более, что в Интернете не так много информации о PowerPoint VBA). К счастью для вас, я взял на себя ответственность за обложка VBA для PowerPoint на этом сайте , так что вам не придется рвать на себе волосы, пытаясь понять это!

Слабые стороны устройства записи макросов

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

  • Некоторые действия не записываются  —  Были случаи, когда я пытался записать команду, но записывающее устройство не могло ее закодировать. Иногда это может раздражать!

  • В некоторых программах нет средства записи  — К сожалению, в настоящее время только Excel и Word поддерживают функцию записи макросов. Для остальных программ Office вам придется научиться писать код VBA (или просто читать мой блог), поскольку каждая программа имеет свои уникальные особенности и функциональные возможности.

  • Записывает прокрутки и клики  — Это, вероятно, больше раздражает, чем падает, но когда я говорю, что программа записи макросов записывает все, я имею в виду ВСЕ! Это означает, что вы делаете каждую прокрутку и каждую ячейку, на которую вы нажимаете. Обычно это приводит к тому, что записанный код макроса становится очень длинным. Я всегда рекомендую зайти и удалить эти посторонние строки кода, так как это сделает ваш код медленнее, труднее для чтения и потенциально может вызвать ошибки.

Можете ли вы вспомнить какие-либо другие недостатки средства записи макросов? Оставьте комментарий ниже, и я буду продолжать обновлять этот список!

УРОК ЧЕТВЕРТЫЙ: Самостоятельное написание кода

С чего начать…

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

Структура VBA

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

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

Прогулка по иерархии

Я сам визуал, и мне всегда проще объяснить, как написать строку кода, на примере. Итак, давайте напишем строку VBA, которая сообщает Excel очистить содержимое диапазона A1: C50.

C:\ Drive

Вместо «дисков» на компьютере VBA начинается со ссылки на компьютерную программу или, в ее терминах, «приложение», на которое вы хотите ориентироваться. Это может быть Word, Excel, NotePad, Internet Explorer или любая другая программа, к которой вы хотите получить доступ, которая также говорит на языке Visual Basic.

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

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

Sub ClearCellContents()

    Excel.Application.

Концевой переходник

Папка «Пользователь»

После того, как мы укажем приложение, которое мы хотим использовать, нам нужно сообщить Excel, какую книгу мы хотим изменить. Это можно сделать несколькими способами:

 ThisWorkbook 

Ссылка на рабочую книгу, в которой написан ваш код VBA.  Обычно вы используете ее, если хотите, чтобы макрос воздействовал только на одну рабочую книгу. Преимущество этого заключается в том, что если вы просматриваете другую книгу и случайно запускаете свой код, это не повлияет на эту книгу. ПОМНИТЕ, ВЫ НЕ МОЖЕТЕ ОТМЕНИТЬ КОМАНДЫ МАКРОСА ПОСЛЕ ЕГО ЗАПУСКА!

 ActiveWorkbook 

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

 Workbook("Book1.xlsx") 

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

 Рабочая тетрадь(1) 

Я не думаю, что когда-либо использовал эту форму ссылки на рабочую книгу, но я добавлю ее туда просто для справки. Когда вы используете номер для ссылки на книгу, вы ссылаетесь на порядок, в котором книги были открыты Excel. Это может быть сложно, потому что если у вас есть активные файлы надстроек, они будут первыми рабочими книгами, открытыми при запуске вашего приложения Excel. Вы можете определить, в каком положении находится ваша книга, сверившись с ее порядком в окне проекта VBA (местоположение показано в третьем уроке).

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

Sub ClearCellContents()

    Excel.Application .Эта рабочая тетрадь.
    
End Sub

Папка «Мои документы»

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

 ActiveSheet 

По функциональности очень похож на ActiveWorkbook. ActiveSheet указывает на вкладку, которую вы сейчас просматриваете. Это удобно использовать, когда вы хотите, чтобы ваш код мог работать на листе по вашему выбору.

 Рабочий лист ("Лист1") 

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

 Рабочий лист(2) 

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

Sub ClearCellContents()

    Excel.Application.ThisWorkbook.Worksheets(«Лист1»).
    
End Sub

Папка «Финансы»

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

Ссылка на одну ячейку

Диапазон («A4»)  – Вы можете сослаться на ячейку, вставив ее строковое имя (имя диапазона заключено в кавычки).

Ячейки( 4, 1) . Вы также можете сослаться на ячейку, используя Ячейки( ) и введя номер строки, а затем номер столбца. Обратите внимание, что функция Cells() не принимает буквы в качестве входных данных для номера столбца.

Ссылка на диапазон ячеек

Range(«A1:E5»)  – Аналогично ссылке на одну ячейку по имени, вы также можете ссылаться на несколько ячеек, вставив двоеточие в верхнюю левую ячейку диапазона. , а затем правая нижняя ячейка диапазона.

Range(Cells(1,1),Cells(5,5))  – Встраивая две ссылки Cells( ) внутрь функции Range( ), вы можете ссылаться на несколько ячеек. Для этого используйте числовую ссылку (номер строки, затем номер столбца) для верхней левой ячейки диапазона, а затем сделайте то же самое для нижней правой ячейки диапазона.

Sub ClearCellContents()

    Excel.Application.ThisWorkbook.Worksheets(«Лист1»).Range(«A1:C50»).
    
End Sub

Файл Excel «Бюджет»

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

Существует множество различных свойств, которые вы можете изменить, и действий, которые вы можете предпринять на уровне диапазона. Вы можете изменить цвет, вы можете выполнить расчет… вы можете сделать почти все, что вы можете сделать вручную в электронной таблице. Преимущество Microsoft как создателя Office и Visual Basic заключается в том, что большая часть компьютерного языка используется в функциях программы. Так что в нашем примере, если бы мы хотели удалить значения в выбранных нами ячейках в Excel, мы бы просто перешли к Вкладка «Главная» , щелкните раскрывающийся список Очистить в разделе Редактирование и нажмите Очистить содержимое . На языке VBA, чтобы имитировать то же самое, все, что нам нужно добавить в нашу строку кода « ClearContents ». Довольно легко, правда?!

Sub ClearCellContents()

    Excel.Application.ThisWorkbook.Worksheets(«Лист1»).Range(«A1:C50»).ClearContents
    
End Sub

Что случилось со всеми точками?

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

Значения VBA по умолчанию

Создатели языка VBA в Microsoft поняли, что мы, программисты, хотим печатать как можно меньше. Они нашли в своем сердце запрограммировать некоторые значения по умолчанию или предположения о том, на какие уровни мы можем ориентироваться. Ниже приведен список некоторых основных значений по умолчанию, которые VBA примет в Excel.0013

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

  • , начиная с Excel Application Уровень

  • ThisWorkbook. Рабочие листы («Лист2»). Диапазон («B3»). Ширина столбца = 4,3

  • Начиная с уровня ActiveSheet

  • Range(«B3»).Interior.Color = RGB(75, 172, 198)

Помогите редактору Visual Basic!

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

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

УРОК ПЯТЫЙ: Куда ты идешь отсюда?

Создание собственного фундамента

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

Испытайте себя!

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

ЛУЧШИЙ способ изучить этот материал — продолжать использовать его на регулярной основе. Я могу гарантировать, что если вы используете Excel, вы можете создать буквально сотни автоматических макросов, чтобы сделать свою работу быстрее и точнее.

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

В этом сила Visual Basic для приложений, и поэтому знание того, как его использовать, почти гарантирует вам успех в будущем!

Ресурсы в Интернете

Следующие ресурсы — это сайты, которые я ежедневно использовал для обучения, вдохновения и устранения неполадок, изучая Visual Basic для приложений. Надеемся, что этот список сэкономит вам время и силы на поиск ответов в Интернете.

Google  – Google – это моя любимая поисковая система, и я считаю, что ее результаты предоставляют лучшие сайты для ответов на мои вопросы. Когда я ищу вопрос, я всегда начинаю поиск с ввода «VBA Excel» или «VBA PowerPoint». Я обнаружил это, начав поиск в Google со слов  VBA  и программы, на которую вы пытаетесь настроить таргетинг,  вы обычно можете найти ответ, который ищете, в первых нескольких результатах.

Блоги  – Когда я пытаюсь что-то выучить, я предпочитаю письменный контент, потому что обычно это самый эффективный способ понять, как выполнить технику, которую я пытаюсь изучить. Я могу быстро просмотреть статью и за несколько секунд определить, есть ли в статье то, что мне нужно, или мне нужно попробовать другую. Есть много отличных блогов, таких как Chandoo , How To Excel , ExcelJet , Excel Off The Grid и Excel Campus (и это лишь некоторые из них). Я использую диспетчер RSS-каналов под названием Feedly , чтобы отслеживать новые сообщения из моих избранных, и это позволяет мне регулярно изучать новые методы.

Форумы  — Существует множество замечательных форумов с множеством замечательных людей, которые готовы поделиться своими знаниями бесплатно! Мой личный фаворит — форум под названием MrExcel имеет замечательный форум, который используется во всем мире. Если у вас есть вопрос и вы не можете найти ответ, опубликуйте сообщение на этом форуме, и вы получите несколько человек, пытающихся ответить на ваш вопрос (обычно в течение нескольких минут)

YouTube . стать ценным. С введением разделов в видео на YouTube теперь стало проще переходить к определенному разделу видео, чтобы получить ответ, не просматривая его целиком. Есть также видеоролики, в которых показано, как создавать невероятные интерфейсы и модели в Excel. Вот некоторые из моих любимых каналов: Другие уровни , MrExcel , Лейла Гарани , Excel Is Fun , и Офисная лаборатория .

Пройди урок/курс!

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

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

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

Что посоветуете?

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

Надеюсь, это помогло!

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