Excel

Макросы в excel 2019 самоучитель с примерами для чайников: Самоучитель по работе с макросами в Excel

Содержание

Самоучитель по работе с макросами в Excel

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

Например, самостоятельно написанный макрос можно привязать к иконке и вывести на Ленту меню. Либо Вы можете создать пользовательскую функцию (UDF) и использовать ее точно так же, как и остальные встроенные функции Excel.

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

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

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

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

Кликните эту ссылку, чтобы узнать больше о параметрах безопасности макросов в Excel

Редактор Visual Basic

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

Кликните эту ссылку, чтобы узнать больше о редакторе Visual Basic в Excel

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

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

Кликните эту ссылку, чтобы узнать больше о записи макросов в Excel

Учебник Excel VBA

Для тех, кто только начинает осваивать язык программирования Excel VBA, предлагаем небольшой вводный курс по Visual Basic for Applications.

Кликните эту ссылку, чтобы перейти к учебнику Excel VBA

Оцените качество статьи. Нам важно ваше мнение:

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

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

В этой статье

Постоянно возникает проблема, вызванная повторяющейся очисткой данных в 50 таблицах в Word?Are you facing a repetitive clean up of fifty tables in Word? Хотите, чтобы при открытии определенного документа пользователи получали запрос на добавление данных?Do you want a particular document to prompt the user for input when it opens? Не знаете, как быстро и легко перенести список контактов из Microsoft Outlook в таблицу Microsoft Excel?Are you having difficulty figuring out how to get your contacts from Microsoft Outlook into a Microsoft Excel spreadsheet efficiently?

Можно выполнить эти задачи и достичь гораздо большего с помощью Visual Basic для приложений (VBA) для Office. Это простой и в то же время мощный язык программирования, применение которого позволит расширить возможности приложений Office.You can perform these tasks and accomplish a great deal more by using Visual Basic for Applications (VBA) for Office—a simple, but powerful programming language that you can use to extend Office applications.

Данная статья предназначена для опытных пользователей Office, которые желают познакомиться с VBA и получить некоторое представление о том, как программирование может помочь им настроить Office.This article is for experienced Office users who want to learn about VBA and who want some insight into how programming can help them to customize Office.

Набор приложений Office обладает множеством возможностей.The Office suite of applications has a rich set of features. Существует множество разных способов создания, форматирования и управления документами, электронной почтой, базами данных, формами, электронными таблицами и презентациями.There are many different ways to author, format, and manipulate documents, email, databases, forms, spreadsheets, and presentations. Значительное преимущество программирования на VBA в Office заключается в том, что почти каждое действие, осуществляемое с мышью, клавиатурой или диалоговым окном, можно выполнить с помощью VBA.The great power of VBA programming in Office is that nearly every operation that you can perform with a mouse, keyboard, or a dialog box can also be done by using VBA. Если действие можно выполнить с помощью VBA, значит в дальнейшем его можно легко осуществлять сотни раз.Further, if it can be done once with VBA, it can be done just as easily a hundred times. (На самом деле автоматизация повторяющихся задач — одно из наиболее частых применений VBA в Office).(In fact, the automation of repetitive tasks is one of the most common uses of VBA in Office.)

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

Beyond the power of scripting VBA to accelerate every-day tasks, you can use VBA to add new functionality to Office applications or to prompt and interact with the user of your documents in ways that are specific to your business needs. Например, можно написать код VBA, выводящий всплывающее сообщение, которое напоминает пользователям о необходимости сохранения документа на определенном сетевом диске при первой попытке его сохранения.For example, you could write some VBA code that displays a pop up message that reminds users to save a document to a particular network drive the first time they try to save it.

В этой статье описываются некоторые основные причины для использования возможностей программирования на VBA.This article explores some of the primary reasons to leverage the power of VBA programming. Здесь описывается язык VBA и встроенные средства, которые можно использовать для работы со своими решениями.It explores the VBA language and the out-of-the-box tools that you can use to work with your solutions.

И, наконец, в данной статье можно найти советы и приемы, чтобы избежать некоторых распространенных ошибок программирования.Finally, it includes some tips and ways to avoid some common programming frustrations and missteps.

Примечание

Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах?Interested in developing solutions that extend the Office experience across multiple platforms? Ознакомьтесь с новой моделью надстроек Office.Check out the new Office Add-ins model. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.

Причины использования VBAWhen to use VBA and why

Есть несколько основных причин использовать программирование на VBA в Office. There are several principal reasons to consider VBA programming in Office.

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

Программирование на VBA эффектно и эффективно при создании решений для устранения повторяющихся проблем форматирования и исправлений.VBA is effective and efficient when it comes to repetitive solutions to formatting or correction problems. Например, вам когда-нибудь приходилось изменять стиль абзаца в верхней части каждой страницы в Word?For example, have you ever changed the style of the paragraph at the top of each page in Word? Или менять формат нескольких таблиц, скопированных из Excel в документ Word или электронную почту Outlook?Have you ever had to reformat multiple tables that were pasted from Excel into a Word document or an Outlook email? А вносить одинаковые изменения в несколько контактов Outlook?Have you ever had to make the same change in multiple Outlook contacts?

Если имеется изменение, которое нужно внести более десяти или двадцати раз, возможно, стоит реализовать его с помощью VBA. If you have a change that you have to make more than ten or twenty times, it may be worth automating it with VBA. Если изменение нужно внести несколько сотен раз, определенно следует рассмотреть VBA.If it is a change that you have to do hundreds of times, it certainly is worth considering. Почти все изменения форматирования или редакторские правки, которые можно внести вручную, можно реализовать на VBA.Almost any formatting or editing change that you can do by hand, can be done in VBA.

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

Иногда некоторые действия пользователей с документом или приложением Office обязательны или желательны, но не доступны в стандартном приложении.There are times when you want to encourage or compel users to interact with the Office application or document in a particular way that is not part of the standard application. Например, нужно уведомлять пользователей о необходимости что-то сделать при открытии, сохранении или печати документа.

For example, you might want to prompt users to take some particular action when they open, save, or print a document.

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

Нужно скопировать все контакты из Outlook в Word и отформатировать их определенным способом?Do you need to copy all of your contacts from Outlook to Word and then format them in some particular way? Или же нужно переместить данные из Excel в набор слайдов PowerPoint?Or, do you need to move data from Excel to a set of PowerPoint slides? Иногда простое копирование и вставка не работают так, как надо, или же это происходит слишком медленно.Sometimes simple copy and paste does not do what you want it to do, or it is too slow. Можно использовать программирование на VBA для работы с данными в двух или более приложениях Office одновременно, а затем изменить содержимое в одном приложении с учетом содержимого в другом.You can use VBA programming to interact with the details of two or more Office applications at the same time and then modify the content in one application based on the content in another.

Другой способDoing things another way

Программирование на VBA — это мощное решение, но данный подход не всегда является оптимальным.VBA programming is a powerful solution, but it is not always the optimal approach. Иногда, чтобы достичь поставленных целей, имеет смысл воспользоваться другими методами.Sometimes it makes sense to use other ways to achieve your aims.

Важнейший вопрос состоит в поиске более легкого способа.The critical question to ask is whether there is an easier way. Перед запуском проекта VBA обратите внимание на встроенные инструменты и стандартные функциональные возможности.Before you begin a VBA project, consider the built-in tools and standard functionalities. Например, если необходимо выполнить времяемкую задачу редактирования или размещения элементов, для решения проблемы следует рассмотреть возможность использования стилей или сочетания клавиш.For example, if you have a time-consuming editing or layout task, consider using styles or accelerator keys to solve the problem. Можете ли вы выполнить задачу единожды, а затем повторить ее с помощью сочетания клавиш CTRL+Y («Повторить»)?Can you perform the task once and then use CTRL+Y (Redo) to repeat it? Можно ли создать документ правильного формата или с нужным шаблоном и затем скопировать содержимое в новый документ?Can you create a new document with the correct format or template, and then copy the content into that new document?

Приложения Office обладают множеством возможностей. Возможно, нужное решение уже в них предусмотрено.Office applications are powerful; the solution that you need may already be there. Узнайте больше об Office, прежде чем начинать программирование.Take some time to learn more about Office before you jump into programming.

Перед созданием проекта VBA убедитесь, что у вас есть время на работу с VBA.Before you begin a VBA project, ensure that you have the time to work with VBA. Программирование требует внимания и может оказаться непредсказуемым.Programming requires focus and can be unpredictable. Если вы начинающий программист, тем более не стоит увлекаться программированием, если не хватает времени на внимательную работу.Especially as a beginner, never turn to programming unless you have time to work carefully. Попытки написать «скрипт на скорую руку» для решения проблемы в сжатые сроки может привести к напряженной ситуации.Trying to write a «quick script» to solve a problem when a deadline looms can result in a very stressful situation. Если вы торопитесь, воспользуйтесь более привычными методами, даже если они сопряжены с монотонностью и повторениями.If you are in a rush, you might want to use conventional methods, even if they are monotonous and repetitive.

Введение в программирование на VBAVBA Programming 101

Использование кода для выполнения операций приложениямиUsing code to make applications do things

Написание кода может казаться очень сложным и непонятным процессом. На самом деле, его базовые принципы основаны на применении повседневной логики и вполне доступны. You might think that writing code is mysterious or difficult, but the basic principles use every-day reasoning and are quite accessible. Объекты в приложениях Microsoft Office, созданные для получения инструкций, можно сравнить с кнопками телефона.Microsoft Office applications are created in such a way that they expose things called objects that can receive instructions, in much the same way that a phone is designed with buttons that you use to interact with the phone. Когда вы нажимаете кнопку, телефон распознает команду и включает соответствующую цифру в набираемую последовательность.When you press a button, the phone recognizes the instruction and includes the corresponding number in the sequence that you are dialing. При программировании вы взаимодействуете с приложением, отправляя инструкции различным объектам.In programming, you interact with the application by sending instructions to various objects in the application. Эти объекты эффективны, но у них есть свои ограничения.These objects are expansive, but they have their limits. Они смогут делать только то, для чего были разработаны, и выполнять только ваши инструкции.They can only do what they are designed to do, and they will only do what you instruct them to do.

Например, представьте себе пользователя, который открывает документ Word, вносит несколько изменений, а затем сохраняет и закрывает его.For example, consider the user who opens a document in Word, makes a few changes, saves the document, and then closes it. Для программирования на VBA приложение Word предоставляет объект Document.In the world of VBA programming, Word exposes a Document object. Используя код VBA, можно заставить объект Document выполнять такие действия, как открытие, сохранение и закрытие.By using VBA code, you can instruct the Document object to do things such as Open, Save, or Close.

В следующем разделе описывается организация объектов.The following section discusses how objects are organized and described.

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

Разработчики организуют объекты программирования в виде иерархии, и такая иерархия называется объектной моделью приложения. Developers organize programming objects in a hierarchy, and that hierarchy is called the object model of the application. В Word, например, есть объект верхнего уровня Application, который содержит объект Document.Word, for example, has a top-level Application object that contains a Document object. Объект Document содержит объекты Paragraph и т. д.The Document object contains Paragraph objects and so on. В объектных моделях приблизительно отражено то, что вы видите в пользовательском интерфейсе.Object models roughly mirror what you see in the user interface. Они являются концептуальной картой приложения и его возможностей.They are a conceptual map of the application and its capabilities.

Определение объекта называется классом, и вы, возможно, увидите, как два этих термина используются попеременно.The definition of an object is called a class, so you might see these two terms used interchangeably. С технической точки зрения класс — это описание или шаблон, используемый для формирования или создания экземпляра объекта. Technically, a class is the description or template that is used to create, or instantiate, an object.

Уже существующим объектом можно управлять, задавая его свойства и вызывая его методы.Once an object exists, you can manipulate it by setting its properties and calling its methods. Если представить объект в виде имени существительного, свойства станут прилагательными, описывающими существительное, а методы — глаголами, которые приводят его в действие.If you think of the object as a noun, the properties are the adjectives that describe the noun and the methods are the verbs that animate the noun. Изменение свойства приводит к модификации определенной характеристики внешнего вида или поведения объекта.Changing a property changes some quality of appearance or behavior of the object. Вызов одного из методов объекта заставляет последний выполнить какое-либо действие.Calling one of the object methods causes the object to perform some action.

Код VBA в этой статье взаимодействует с приложением Office, в котором многие объекты, которыми управляет код, уже настроены и работают (например, объект Application приложения, Worksheet в Excel, Document в Word, Presentation в PowerPoint, объекты Explorer и Folder в Outlook). The VBA code in this article runs against an open Office application where many of the objects that the code manipulates are already up and running; for example, the Application itself, the Worksheet in Excel, the Document in Word, the Presentation in PowerPoint, the Explorer and Folder objects in Outlook. Узнав основную структуру объектной модели и некоторые ключевые свойства объекта Application, которые предоставляют доступ к его текущему состоянию, можно расширить возможности приложения Office с помощью VBA в Office.Once you know the basic layout of the object model and some key properties of the Application that give access to its current state, you can start to extend and manipulate that Office application with VBA in Office.

МетодыMethods

В Word, например, можно изменить свойства и вызвать методы текущего документа Word с помощью свойства ActiveDocument объекта Application.In Word, for example, you can change the properties and invoke the methods of the current Word document by using the ActiveDocument property of the Application object. Это свойство ActiveDocument возвращает ссылку на объект Document, активный в приложении Word.This ActiveDocument property returns a reference to the Document object that is currently active in the Word application. «Возвращает ссылку на» означает «предоставляет доступ к».»Returns a reference to» means «gives you access to.»

В приведенном ниже коде выполняется именно то, что сказано; т. е. активный документ приложения сохраняется.The following code does exactly what it says; that is, it saves the active document in the application.

Application.ActiveDocument.Save

Прочитайте код слева направо: «В этом приложении (Application) с документом (Document), на который ссылается активный документ (ActiveDocument), вызовите метод сохранения (Save).Read the code from left to right, «In this Application, with the Document referenced by ActiveDocument, invoke the Save method. » Помните, что Save — самая простая форма метода; ему не нужны подробные инструкции от разработчика.Be aware that Save is the simplest form of method; it does not require any detailed instructions from you. Объекту Document дается команда сохранения (Save), а дополнительные данные вводить не нужно.You instruct a Document object to Save and it does not require any more input from you.

Если методу требуются дополнительные данные, они называются параметрами.If a method requires more information, those details are called parameters. В приведенном ниже коде выполняется метод SaveAs, для которого требуется указать новое имя файла.The following code runs the SaveAs method, which requires a new name for the file.

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

Значения, которые указываются в скобках после имени метода — это параметры. Values listed in parentheses after a method name are the parameters. Здесь новое имя файла — параметр метода SaveAs.Here, the new name for the file is a parameter for the SaveAs method.

СвойстваProperties

Для задания свойства используйте такой же синтаксис, что и для чтения свойства.You use the same syntax to set a property that you use to read a property. В приведенном ниже коде выполняется метод для выбора ячейки A1 в Excel и затем задается свойство для записи данных в ячейку.The following code executes a method to select cell A1 in Excel and then to set a property to put something in that cell.

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

Первая задача при программировании на VBA — осознать объектную модель каждого приложения Office и научиться читать синтаксис объекта, метода и свойства.The first challenge in VBA programming is to get a feeling for the object model of each Office application and to read the object, method, and property syntax. Во всех приложениях Office объектные модели похожи, но каждая из них обладает особенными характеристиками в соответствии с типом документов и объектов, которыми управляет.The object models are similar in all Office applications, but each is specific to the kind of documents and objects that it manipulates.

В первой строке фрагмента кода указан объект Application, на этот раз это приложение Excel, а затем объект ActiveSheet, который предоставляет доступ к активному листу.In the first line of the code snippet, there is the Application object, Excel this time, and then the ActiveSheet, which provides access to the active worksheet. После этого указан термин Range, который означает «определить диапазон ячеек следующим способом».After that is a term not as familiar, Range, which means «define a range of cells in this way.» Код указывает объекту Range создать себя с одной ячейкой A1.The code instructs Range to create itself with just A1 as its defined set of cells. Другими словами, в первой строке кода объявляется объект Range и запускается метод для его выбора.In other words, the first line of code defines an object, the Range, and runs a method against it to select it. Результат автоматически сохраняется в другом свойстве объекта Application с именем Selection.The result is automatically stored in another property of the Application called Selection.

Во второй строке кода задается значение свойства Value объекта Selection, равное «Hello World» и отображающееся в ячейке A1.The second line of code sets the Value property of Selection to the text «Hello World», and that value appears in cell A1.

Самый простой код VBA может предоставлять доступ к объектам в приложении Office, с которым вы работаете, и задавать их свойства.The simplest VBA code that you write might simply gain access to objects in the Office application that you are working with and set properties. Например, можно получить доступ к строкам в таблице Word и изменить их форматирование в скрипте VBA.For example, you could get access to the rows in a table in Word and change their formatting in your VBA script.

Это звучит просто, но может быть невероятно полезно. Написав такой код, можно освоить всю мощь программирования для внесения одинаковых изменений в несколько таблиц или документов в соответствии с определенной логикой или каким-то условием.That sounds simple, but it can be incredibly useful; once you can write that code, you can harness all of the power of programming to make those same changes in several tables or documents, or make them according to some logic or condition. Сделать 1000 изменений для компьютера почти то же самое, что 10, поэтому при работе с большими документами и при решении множества проблем VBA может оказаться очень полезен и сэкономить много времени.For a computer, making 1000 changes is no different from making 10, so there is an economy of scale here with larger documents and problems, and that is where VBA can really shine and save you time.

Макросы и редактор Visual BasicMacros and the Visual Basic Editor

Теперь вы кое-что знаете об объектных моделях в приложениях Office. Возможно, вам не терпится попробовать вызвать методы объекта, задать его свойства и отреагировать на события объекта.Now that you know something about how Office applications expose their object models, you are probably eager to try calling object methods, setting object properties, and responding to object events. Для этого необходимо написать свой код так, чтобы он распознавался в Office. Обычно это делается с помощью редактора Visual Basic.To do so, you must write your code in a place and in a way that Office can understand; typically, by using the Visual Basic Editor. Несмотря на то, что он установлен по умолчанию, многие пользователи бывают не осведомлены даже о его наличии до тех пор, пока не включат его на ленте.Although it is installed by default, many users do not know that it is even available until it is enabled on the ribbon.

Все приложения Office используют ленту. All Office applications use the ribbon. Одной из вкладок на ленте является вкладка Разработчик, где можно вызвать редактор Visual Basic и другие инструменты разработчика.One tab on the ribbon is the Developer tab, where you access the Visual Basic Editor and other developer tools. Так как в Office вкладка Разработчик не показана по умолчанию, необходимо вывести ее на экран, выполнив указанные ниже действия.Because Office does not display the Developer tab by default, you must enable it by using the following procedure:

Включение вкладки «Разработчик»To enable the Developer tab

  1. На вкладке Файл выберите Параметры, чтобы открыть диалоговое окно Параметры.On the File tab, choose Options to open the Options dialog box.

  2. Выберите пункт Настроить ленту в левой части диалогового окна. Choose Customize Ribbon on the left side of the dialog box.

  3. В разделе Выбрать команды, расположенном слева в окне, выберите Часто используемые команды.Under Choose commands from on the left side of the dialog box, select Popular Commands.

  4. В разделе Настроить ленту, который находится справа в диалоговом окне, выберите Основные вкладки в раскрывающемся списке, а затем установите флажок Разработчик.Under Customize the Ribbon on the right side of the dialog box, select Main Tabs in the drop down list box, and then select the Developer checkbox.

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

Примечание

В Office 2007 показ вкладки Разработчик выполняется путем нажатия кнопки Office, выбора пункта Параметры, а затем установки флажка Показать вкладку «Разработчик» на ленте в категории Популярные диалогового окна Параметры. In Office 2007, you displayed the Developer tab by choosing the Office button, choosing Options, and then selecting the Show Developer tab in Ribbon check box in the Popular category of the Options dialog box.

После включения вкладки Разработчик можно легко найти кнопки Visual Basic и Макрос.After you enable the Developer tab, it is easy to find the Visual Basic and Macros buttons.

Рисунок 1. Кнопки на вкладке «Разработчик»Figure 1. Buttons on the Developer tab

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

Для защиты документов Office от вирусов и вредоносных макросов не сохраняйте код макросов в стандартных документах Office со стандартным расширением файла.To protect Office users against viruses and dangerous macro code, you cannot save macro code in a standard Office document that uses a standard file extension. Следует сохранить код в файле с особым расширением.Instead, you must save the code in a file with a special extension. Например, сохраняйте макросы не в стандартном документе Word с расширением DOCX, а в специальном документе Word с поддержкой макросов и расширением DOCM.For example you cannot save macros in a standard Word document with a .docx extension; instead, you must use a special Word Macro-Enabled Document with a .docm extension.

При открытии DOCM-файла система безопасности Office все равно может запретить запуск макросов в документе, сообщая или не сообщая об этом.When you open a .docm file, Office security might still prevent the macros in the document from running, with or without telling you. Изучите параметры и настройки центра управления безопасностью во всех приложениях Office.Examine the settings and options in the Trust Center on all Office applications. По умолчанию макросы отключены, но пользователь оповещается об этом и может включить их.The default setting disables macro from running, but warns you that macros have been disabled and gives you the option to turn them back on for that document.

Можно указать специальные папки, в которых можно выполнять макросы, создав надежные расположения, надежные документы или надежных издателей.You can designate specific folders where macros can run by creating Trusted Locations, Trusted Documents, or Trusted Publishers. Самый универсальный способ — использовать надежных издателей. Этот способ подходит для работы с документами, у которых есть распространяемые вами цифровые подписи.The most portable option is to use Trusted Publishers, which works with digitally signed documents that you distribute. Чтобы получить дополнительные сведения о параметрах безопасности в определенном приложении Office, откройте диалоговое окно Параметры, а затем выберите Центр управления безопасностью и Параметры центра управления безопасностью.For more information about the security settings in a particular Office application, open the Options dialog box, choose Trust Center, and then choose Trust Center Settings.

Примечание

Некоторые приложения Office, такие как Outlook, сохраняют макросы по умолчанию в основном шаблоне на локальном компьютере.Some Office applications, like Outlook, save macros by default in a master template on your local computer. Хотя это позволяет уменьшить количество проблем с безопасностью на локальном компьютере при выполнении собственных макросов, для распространения своих макросов в этом случае потребуется стратегия развертывания. Although that strategy reduces the local security issues on your own computer when you run your own macros, it requires a deployment strategy if you want to distribute your macro.

Запись макросаRecording a macro

Если нажать кнопку Макрос на вкладке Разработчик, открывается диалоговое окно Макрос, которое предоставляет доступ к подпрограммам или макросам VBA, которые можно использовать из определенного документа или приложения.When you choose the Macro button on the Developer tab, it opens the Macros dialog box, which gives you access to VBA subroutines or macros that you can access from a particular document or application. Кнопка Visual Basic открывает редактор Visual Basic, где можно создавать и редактировать код VBA.The Visual Basic button opens the Visual Basic Editor, where you create and edit VBA code.

На вкладке Разработчик в Word и Excel также есть кнопка Запись макроса, которая автоматически создает код VBA, позволяющий воспроизводить ваши действия в приложении.Another button on the Developer tab in Word and Excel is the Record Macro button, which automatically generates VBA code that can reproduce the actions that you perform in the application. Запись макроса — это великолепное средство, которое можно использовать для изучения VBA.Record Macro is a terrific tool that you can use to learn more about VBA. Читая такой код, можно понять язык VBA и объединить знания пользователя и программиста Office.Reading the generated code can give you insight into VBA and provide a stable bridge between your knowledge of Office as a user and your knowledge as a programmer. Только помните о том, что этот код может быть запутанным, так как редактор макросов делает допущения насчет ваших намерений, которые не всегда точны.The only caveat is that the generated code can be confusing because the Macro editor must make some assumptions about your intentions, and those assumptions are not necessarily accurate.

Запись макросаTo record a macro
  1. Создайте книгу в Excel и откройте вкладку Разработчик на ленте.Open Excel to a new Workbook and choose the Developer tab in the ribbon. Нажмите кнопку Запись макроса и оставьте все параметры по умолчанию в диалоговом окне Запись макроса, в том числе имя Макрос1 и расположение Эта книга.Choose Record Macro and accept all of the default settings in the Record Macro dialog box, including Macro1 as the name of the macro and This Workbook as the location.

  2. Нажмите кнопку ОК, чтобы начать запись макроса.Choose OK to begin recording the macro. Обратите внимание, что текст кнопки изменяется на Остановить запись.Note how the button text changes to Stop Recording. Нажмите эту кнопку, когда выполните все записываемые действия.Choose that button the instant you complete the actions that you want to record.

  3. Выберите ячейку B1 и введите классическую первую строку программиста — Hello World.Choose cell B1 and type the programmer’s classic first string: Hello World. Прекратите ввод текста и посмотрите на кнопку Остановить запись. Она серая, так как Excel ждет, пока вы завершите ввод значения ячейки.Stop typing and look at the Stop Recording button; it is grayed out because Excel is waiting for you to finish typing the value in the cell.

  4. Выберите ячейку B2, чтобы завершить действие в ячейке B1, а затем нажмите кнопку Остановить запись. Choose cell B2 to complete the action in cell B1, and then choose Stop Recording.

  5. Выберите пункт Макросы на вкладке Разработчик, выберите макрос Макрос1, если он еще не выбран, и нажмите кнопку Изменить, чтобы просмотреть код Макрос1 в редакторе Visual Basic.Choose Macros on the Developer tab, select Macro1 if it is not selected, and then choose Edit to view the code from Macro1 in the Visual Basic Editor.

Рисунок 2. Код макроса в редакторе Visual BasicFigure 2. Macro code in Visual Basic Editor

КодLooking at the code

Созданный макрос должен выглядеть указанным ниже образом.The macro that you created should look similar to the following code.

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

Учтите схожие моменты с предыдущим примером кода, в котором выбирается ячейка A1, и отличия от него.Be aware of the similarities to the earlier code snippet that selected text in cell A1, and the differences. В этом примере кода выбирается ячейка B1, а затем строка «Hello World» записываются в активную ячейку.In this code, cell B1 is selected, and then the string «Hello World» is applied to the cell that has been made active. Кавычки вокруг текста обозначают строковое значение (в противоположность числовому значению).The quotes around the text specify a string value as opposed to a numeric value.

Вспомните, что для отображения кнопки Остановить запись нужно было выбрать ячейку B2.Remember how you chose cell B2 to display the Stop Recording button again? Это действие также задается в строке кода.That action shows up as a line of code as well. Средство записи макроса записывает каждое нажатие клавиши.The macro recorder records every keystroke.

Строки кода, начинающиеся с апострофа и выделенные зеленым цветом — это комментарии, которые поясняют код или напоминают другим программистам его предназначение.The lines of code that start with an apostrophe and colored green by the editor are comments that explain the code or remind you and other programmers the purpose of the code. VBA игнорирует любую строку или ее часть, которые начинаются с одинарной кавычки.VBA ignores any line, or portion of a line, that begins with a single quote. Написание понятных и подходящих комментариев в коде очень важно, но в этой статье данная тема не затрагивается.Writing clear and appropriate comments in your code is an important topic, but that discussion is out of the scope of this article. В следующих ссылках на этот код в данной статье эти четыре строки комментариев отсутствуют.Subsequent references to this code in the article do not include those four comment lines.

Когда средство записи макроса генерирует код, оно использует сложный алгоритм для определения нужных методов и свойств. When the macro recorder generates the code, it uses a complex algorithm to determine the methods and the properties that you intended. Если данное свойство незнакомо, пользователю могут помочь множество ресурсов.If you do not recognize a given property, there are many resources available to help you. Например, в записанном макросе средство записи макроса сгенерировало код, который ссылается на свойство FormulaR1C1.For example, in the macro that you recorded, the macro recorder generated code that refers to the FormulaR1C1 property. Не знаете, что это значит?Not sure what that means?

Примечание

Помните, что объект Application используется во всех макросах VBA.Be aware that Application object is implied in all VBA macros. В записанном коде объект Application.The code that you recorded works with Application. используется в начале каждой строки.at the beginning of each line.

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

Выберите FormulaR1C1 в записанном макросе и нажмите F1.Select FormulaR1C1 in the recorded macro and press F1. Система справки запустит быстрый поиск, определит, что нужные темы есть в разделе «Разработчик» справки Excel, и укажет свойство FormulaR1C1.The Help system runs a quick search, determines that the appropriate subjects are in the Excel Developer section of the Excel Help, and lists the FormulaR1C1 property. Можно щелкнуть ссылку, чтобы прочитать описание свойства, но прежде обратите внимание на ссылку Справочник по объектной модели Excel в нижней части окна.You can choose the link to read more about the property, but before you do, be aware of the Excel Object Model Reference link near the bottom of the window. Щелкните ее, чтобы просмотреть список объектов, которые Excel использует в объектной модели для описания листов и их компонентов. Choose the link to view a long list of objects that Excel uses in its object model to describe the Worksheets and their components.

Выберите любой из них, чтобы просмотреть свойства и методы, которые применяются к этому объекту, а также ссылки на другие связанные с ними параметры.Choose any one of those to see the properties and methods that apply to that particular object, along with cross references to different related options. Многие записи справки содержат короткие примеры кода, которые могут быть полезны.Many Help entries also have brief code examples that can help you. Например, можно перейти по ссылкам в описании объекта Borders, чтобы узнать, как задать границу в VBA.For example, you can follow the links in the Borders object to see how to set a border in VBA.

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

Редактирование кодаEditing the code

Код с границами отличается от записанного макроса. The Borders code looks different from the recorded macro. В объектной модели есть несколько способов адресации любого объекта (ячейки A1 в этом примере), что может вызывать затруднения.One thing that can be confusing with an object model is that there is more than one way to address any given object, cell A1 in this example.

Иногда самый лучший способ изучить программирование — вносить небольшие изменения в определенный рабочий код и смотреть, что получается.Sometimes the best way to learn programming is to make minor changes to some working code and see what happens as a result. Попробуйте сделать это сейчас.Try it now. Откройте Макрос1 в редакторе Visual Basic и измените код указанным ниже образом.Open Macro1 in the Visual Basic Editor and change the code to the following.

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

Совет

Используйте копирование и вставку, где это возможно, чтобы избежать опечаток. Use Copy and Paste as much as possible when working with code to avoid typing errors.

Не нужно сохранять код, чтобы запустить его, поэтому вернитесь в документ Excel, нажмите кнопку Макросы на вкладке Разработчик, выберите Макрос1 и нажмите кнопку Выполнить.You do not need to save the code to try it out, so return to the Excel document, choose Macros on the Developer tab, choose Macro1, and then choose Run. Теперь в ячейке A1 есть текст Wow!,Cell A1 now contains the text Wow! а вокруг него размещена граница из двойных линий.and has a double-line border around it.

Рисунок 3. Результаты первого макросаFigure 3. Results of your first macro

Только что вы записали макрос, прочитали документацию по объектной модели и написали простую программу на VBA, которая что-то делает.You just combined macro recording, reading the object model documentation, and simple programming to make a VBA program that does something. Поздравляем!Congratulations!

Программа не работает?Did not work? Читайте дальше и узнайте о методах отладки в VBA.Read on for debugging suggestions in VBA.

Советы и приемы программированияProgramming tips and tricks

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

Сообщество программистов на VBA очень большое; поиск в Интернете почти всегда может дать пример кода на VBA, который выполняет почти те же действия, которые необходимы вам.The VBA community is very large; a search on the Web can almost always yield an example of VBA code that does something similar to what you want to do. Если не удается найти хороший пример, попробуйте разбить задачу на более мелкие модули и выполнить поиск каждого из них. Или попробуйте найти более общую, но аналогичную задачу.If you cannot find a good example, try to break the task down into smaller units and search on each of those, or try to think of a more common, but similar problem. Если начать с примеров, это может сэкономить много времени. Starting with an example can save you hours of time.

Это не означает, что в Интернете всегда доступен бесплатный и качественный код.That does not mean that free and well-thought-out code is on the Web waiting for you to come along. В действительности, в найденных программах могут быть ошибки.In fact, some of the code that you find might have bugs or mistakes. Идея в том, что примеры из Интернета или документации по VBA помогают начать работу.The idea is that the examples you find online or in VBA documentation give you a head start. Помните, что для изучения программирования требуется время и умственные усилия.Remember that learning programming requires time and thought. Перед тем как использовать очередное решение для решения проблемы, спросите себя, подходит ли VBA для этого.Before you get in a big rush to use another solution to solve your problem, ask yourself whether VBA is the right choice for this problem.

Упрощение задачиMake a simpler problem

Программирование может быстро стать сложной задачей. Programming can get complex quickly. Важно, особенно для новичка, разбивать задачу самые маленькие логические модули, затем отдельно писать и проверять каждую часть.It is critical, especially as a beginner, that you break the problem down to the smallest possible logical units, then write and test each piece in isolation. Если перед вами слишком много кода и вы запутались, остановитесь и отложите задачу.If you have too much code in front of you and you get confused or muddled, stop and set the problem aside. Когда вы к ней вернетесь, скопируйте небольшую часть задачи в новый модуль, разберитесь с ней, напишите работающий код и проверьте его.When you come back to the problem, copy out a small piece of the problem into a new module, solve that piece, get the code working, and test it to ensure that it works. Затем займитесь следующей частью.Then move on to the next part.

Ошибки и отладкаBugs and debugging

Существует два основных вида ошибок программирования: синтаксические ошибки, которые нарушают грамматические правила языка программирования и ошибки времени выполнения, которые синтаксически правильны, но вызывают сбой, когда VBA пытается выполнить код. There are two main types of programming errors: syntax errors, which violate the grammatical rules of the programming language, and run-time errors, which look syntactically correct, but fail when VBA attempts to execute the code.

Хотя исправлять синтаксические ошибки неприятно, их легко обнаружить; редактор Visual Basic выдает сопровождающееся звуковым сигналом сообщение об ошибке и меняет цвет текста, если при вводе кода найдена синтаксическая ошибка.Although they can be frustrating to fix, syntax errors are easy to catch; the Visual Basic Editor beeps and flashes at you if you type a syntax error in your code.

Например, в VBA строковые значения должны быть заключены в двойные кавычки.For example, string values must be surrounded by double quotes in VBA. Чтобы узнать, что происходит при использовании одинарных кавычек, вернитесь в редактор Visual Basic и замените строку «Wow!»To find out what happens when you use single quotes instead, return to the Visual Basic Editor and replace the «Wow!» на ‘Wow!’string in the code example with ‘Wow!’ (т.  е. слово Wow в одинарных кавычках).(that is, the word Wow enclosed in single quotes). Если выбрать следующую строку, среагирует редактор Visual Basic.If you choose the next line, the Visual Basic Editor reacts. Сообщение об ошибке «Ошибка компиляции. Ожидается: выражение» не особо помогает, но строка, содержащая ошибку, становится красной, что говорит о синтаксической ошибке в этой строке. В результате программа не будет запускаться.The error «Compile error: Expected: expression» is not that helpful, but the line that generates the error turns red to tell you that you have a syntax error in that line and as a result, this program will not run.

Нажмите кнопку ОК и измените текст на «Wow!».Choose OK and change the text back to»Wow!».

Ошибки времени выполнения обнаружить сложнее, так как синтаксически все выглядит правильно, но при попытке выполнить код возникает сбой.Runtime errors are harder to catch because the programming syntax looks correct, but the code fails when VBA tries to execute it.

Например, откройте редактор Visual Basic и измените имя свойства Value на ValueX в макросе, намеренно вызывая ошибку среды выполнения, так как у объекта Range нет свойства ValueX.For example, open the Visual Basic Editor and change the Value property name to ValueX in your Macro, deliberately introducing a runtime error since the Range object does not have a property called ValueX. Вернитесь к документу Excel, откройте диалоговое окно Макрос и запустите Макрос1 еще раз.Go back to the Excel document, open the Macros dialog box and run Macro1 again. Появится сообщение Visual Basic, в котором описывается ошибка во время выполнения: «Объект не поддерживает это свойство или метод».You should see a Visual Basic message box that explains the run-time error with the text, «Object doesn’t support this property of method.» Хотя текст и так понятен, нажмите кнопку Отладка для получения дополнительных сведений. Although that text is clear, choose Debug to find out more.

После возвращения в редактор Visual Basic будет включен специальный режим отладки, в котором желтым цветом выделяется строка кода с ошибкой.When you return to the Visual Basic Editor, it is in a special debug mode that uses a yellow highlight to show you the line of code that failed. Как и ожидалось, желтым выделена строка со свойством ValueX.As expected, the line that includes the ValueX property is highlighted.

Можно внести изменения в исполняемый код VBA, поэтому измените ValueX на Value и нажмите маленькую зеленую кнопку воспроизведения в меню Отладка.You can make changes to VBA code that is running, so change ValueX back to Value and choose the little green play button underneath the Debug menu. Программа должна запуститься без ошибок.The program should run normally again.

Будет полезно узнать, как использовать отладчик для решения более сложных задач. It is a good idea to learn how to use the debugger more deliberately for longer, more complex programs. Хотя бы изучите, как устанавливать точки останова, чтобы прекращать выполнение программы там, где нужно взглянуть на код, как добавлять контрольные значения, чтобы просматривать значения разных переменных и свойств во время выполнения кода, и как пошагово, строка за строкой, выполнять код.At a minimum, learn a how to set break-points to stop execution at a point where you want to take a look at the code, how to add watches to see the values of different variables and properties as the code runs, and how to step through the code line by line. Все эти возможности доступны в меню Отладка, а серьезный пользователь отладчика обычно запоминает соответствующие сочетания клавиш.These options are all available in the Debug menu and serious debugger users typically memorize the accompanying keyboard shortcuts.

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

Чтобы открыть справочник разработчика, встроенный в справку Office, откройте справку в любом приложении Office, выбрав вопросительный знак на ленте или нажав клавишу F1. To open the Developer Reference that is built into Office Help, open the Help reference from any Office application by choosing the question mark in the ribbon or by pressing F1. Затем справа от кнопки Поиск выберите стрелку раскрывающегося меню для фильтрации содержимого.Then, to the right of the Search button, choose the dropdown arrow to filter the contents. Выберите Справочник разработчика.Choose Developer Reference. Если на левой панели не отображается содержание, щелкните маленький значок в виде книги, чтобы открыть его, и раскройте справочник по объектной модели.If you do not see the table of contents in the left panel, choose the little book icon to open it, and then expand the Object Model Reference from there.

Рисунок 5. Фильтрация справки разработчика работает во всех приложениях OfficeFigure 5. Filtering on developer Help applies to all Office applications

Время, потраченное на исследование справочника по объектной модели, быстро окупится. Time spent browsing the Object Model reference pays off. Когда вы изучите базовый синтаксис VBA и объектную модель приложения Office, с которым вы работаете, можно перейти от догадок к методичному программированию.After you understand the basics of VBA syntax and the object model for the Office application that you are working with, you advance from guesswork to methodical programming.

Конечно, центр разработки Microsoft Office — это прекрасный портал со статьями, советами и форумами сообщества.Of course the Microsoft Office Developer Center is an excellent portal for articles, tips, and community information.

Поиск в форумах и группахSearching forums and groups

Рано или поздно все программисты попадают в ситуацию, когда невозможно решить какую-либо проблему, даже прочитав все найденные статьи и проведя много бессонных ночей в поисках ее решения.All programmers get stuck sometimes, even after reading every reference article they can find and losing sleep at night thinking about different ways to solve a problem. К счастью, в Интернете появилось сообщество разработчиков, которые помогают друг другу при решении задач программирования.Fortunately, the Internet has fostered a community of developers who help each other solve programming problems.

Если поискать в Интернете «форум разработчиков Office», можно найти несколько таких групп обсуждений.Any search on the Web for «office developer forum» reveals several discussion groups. Можно поискать «разработка Office» или описание проблемы и найти нужные форумы, блоги и статьи.You can search on «office development» or a description of your problem to discover forums, blog posts, and articles as well.

Если сделано все, что возможно, для решения проблемы, не бойтесь задать вопрос на форуме разработчиков.If you have done everything that you can to solve a problem, do not be afraid to post your question to a developers forum. В таких форумах приветствуются вопросы от новичков-программистов, и многие опытные разработчики с радостью помогут им. These forums welcome posts from newer programmers and many of the experienced developers are glad to help.

Далее описаны некоторые вопросы этикета, которых следует придерживаться при публикации на форуме разработчиков.The following are a few points of etiquette to follow when you post to a developer forum:

  • Перед публикацией поищите на сайте часто задаваемые вопросы или инструкции, которые следует соблюдать.Before you post, look on the site for an FAQ or for guidelines that members want you to follow. Убедитесь, что публикация соответствует этим инструкциям и расположена в нужном разделе форума.Ensure that you post content that is consistent with those guidelines and in the correct section of the forum.

  • Представьте ясный и полный пример кода, и если он является частью более сложного кода, укажите это.Include a clear and complete code sample, and consider editing your code to clarify it for others if it is part of a longer section of code.

  • Опишите проблему четко и кратко и укажите действия, выполненные для решения проблемы. Describe your problem clearly and concisely, and summarize any steps that you have taken to solve the problem. Не спешите и напишите вопрос, как можно лучше, даже если вы взволнованны или вам не хватает времени.Take the time to write your post as well as you can, especially if you are flustered or in a hurry. Опишите ситуацию так, чтобы читатели поняли ее после первого прочтения.Present the situation in a way that will make sense to readers the first time that they read the problem statement.

  • Будьте вежливы и выражайте благодарность за все ответы.Be polite and express your appreciation.

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

Хотя это короткая статья, и в ней представлена лишь малая часть сведений о VBA и программировании, надеюсь, ее будет достаточно для начала.Although this article is short and only scratches the surface of VBA and programming, it is hopefully enough to get you started.

В этом разделе кратко описываются некоторые другие важные темы. This section briefly discusses a few more key topics.

ПеременныеVariables

В примерах в этой статье использовались объекты, которые уже создало приложение.In the simple examples in this article you manipulated objects that the application had already created. Иногда требуется создать собственные объекты для хранения значений или ссылок на другие объекты.You might want to create your own objects to store values or references to other objects for temporary use in your application. Они называются переменными.These are called variables.

Чтобы использовать переменную в VBA, необходимо сообщить VBA, какой тип представляет переменная, с помощью оператора Dim.To use a variable in VBA, must tell VBA which type of object the variable represents by using the Dim statement. Затем задается значение переменной, и она используется для установки других переменных и свойств.You then set its value and use it to set other variables or properties.

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

Ветвление и циклыBranching and looping

В примерах простых программ в этой статье код выполняется строка за строкой, сверху вниз.The simple programs in this article execute one line at a time, from the top down. Реальные возможности программирования состоят в том, что можно определять, какие строки кода выполнять, в зависимости от одного или нескольких указанных условий. The real power in programming comes from the options that you have to determine which lines of code to execute, based on one or more conditions that you specify. Эти возможности можно расширить, если повторять операцию нужное количество раз.You can extend those capabilities even further when you can repeat an operation many times. Например, приведенный ниже пример кода расширяет Макрос1.For example, the following code extends Macro1.

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 и запустите его.Type or paste the code into the Visual Basic Editor and then run it. Следуйте инструкциям в появившемся окне сообщений и измените текст в ячейке A1 с «Wow!»Follow the directions in the message box that appears and change the text in cell A1 from Wow! на «Yes!»,to Yes! а затем выполните программу еще раз, чтобы ознакомиться с возможностями циклов.and run it again to see the power of looping. В этом примере кода показаны переменные, ветвление и циклы.This code snippet demonstrates variables, branching and looping. Просмотрите его внимательно после выполнения и попробуйте определить, что происходит после выполнения каждой строки.Read it carefully after you see it in action and try to determine what happens as each line executes.

Все приложения на вкладке «Мой Office»: примеры кодаAll of my Office applications: example code

Вот несколько скриптов, которые можно попробовать. Каждый из них решает реальную задачу Office.Here are a few scripts to try; each solves a real-world Office problem.

Создание электронной почты в OutlookCreate an email in 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 или использовать шаблоны.Be aware that there are situations in which you might want to automate email in Outlook; you can use templates as well.

Удаление пустых строк на листе ExcelDelete empty rows in an Excel worksheet

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

Помните, что можно выбрать столбец ячеек и запустить этот макрос, чтобы удалить все строки в выбранном столбце с пустыми ячейками.Be aware that you can select a column of cells and run this macro to delete all rows in the selected column that have a blank cell.

Удаление пустых текстовых полей в PowerPointDelete empty text boxes in 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

Имейте в виду, что в коде выполняется цикл по всем слайдам и удаляются все текстовые поля, в которых нет текста. Be aware that this code loops through all of the slides and deletes all text boxes that do not have any text. Переменная-счетчик уменьшается, а не увеличивается, так как при каждом удалении объекта он удаляется из коллекции, что уменьшает счетчик.The count variable decrements instead of increments because each time the code deletes an object, it removes that object from the collection, which reduces the count.

Копирование контакта из Outlook в WordCopy a contact from Outlook to 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.Be aware that this code copies the currently open contact in Outlook into the open Word document. Этот код работает, только если в Outlook открыт контакт.This code only works if there is a contact currently open for inspection in Outlook.

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Комолова Н В Программирование на vba в excel

Комолова Н., Клименко А. Программирование на VBA в Excel 2019 Самоучитель

Комолова Н.В. Программирование на VBA в Excel 2019. Самоучитель

Книга научит самостоятельно создавать приложения для автоматизации работы в программе Microsoft Office Excel 2019 с использованием макросов и языка программирования Visual Basic for Applications (VBA). Приведена информация о новинках программы, а также сервисах Power по работе с данными. Даны теоретические сведения о программировании, элементах объектной модели Excel, запуске и отладке макросов. Рассмотрены вопросы автоматизации рабочего листа при помощи элементов управления Excel. Описаны приемы создания макросов, пользовательских функций и форм в редакторе VBE. Приведены способы взаимодействия при помощи VBA с другими программами пакета Microsoft Office. Для закрепления материала рассмотрены примеры пользовательских приложений с анализом и поясняющими комментариями. Основные термины VBA и редактора VBE приведены в глоссарии. Файлы рабочих книг с поддержкой макросов для каждой главы размещены на сайте издательства. Для широкого круга пользователей

716 RUR

/ / похожие

Подробнее

Нина Комолова Программирование на VBA в Excel 2016.
Самоучитель

Книга научит самостоятельно создавать приложения для автоматизации работы в программе Microsoft Excel 2016 с использованием макросов и языка программирования Visual Basic for Applications (VBA). Даны теоретические сведения о программировании, элементах объектной модели Excel, запуске и отладке макросов. Рассмотрены вопросы автоматизации рабочего листа при помощи элементов управления Excel. Описаны приемы создания макросов, пользовательских функций и форм в редакторе Visual Basic. Приведены способы взаимодействия при помощи VBA с другими программами пакета Microsoft Office. Для закрепления материала рассмотрены примеры пользовательских приложений с анализом и поясняющими комментариями. Файлы рабочих книг с поддержкой макросов для каждой главы размещены на сайте издательства.

349 RUR

/ / похожие

Подробнее

Ростислав Михеев VBA и программирование в MS Office для пользователей

В основу книги положен материал учебного курса «Программирование в Microsoft Office для пользователей», который в течение нескольких лет читается сотрудникам крупнейших предприятий России. Рассмотрено программирование на языке VBA с использованием возможностей объектных моделей приложений Microsoft Office. Описан синтаксис языка VBA, основные приемы работы с редактором кода, впервые подробно рассматриваются объектные модели основных приложений Microsoft Office: Word, Excel, Access, Outlook, PowerPoint, Project. Материал сопровождается многочисленными практическими примерами. К каждой главе книги предусмотрены задания для самостоятельной работы с подробными решениями. Для пользователей MS Office.

127 RUR

/ / похожие

Подробнее

C. И. Никишов Программирование на VBA в Microsoft Excel

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

199 RUR

/ / похожие

Подробнее

Александр Анатольевич Казанский Прикладное программирование на Excel 2019 2-е изд., пер. и доп. Учебное пособие для вузов

Книга построена на основе последней версии Office 365 и отражает основные тенденции и методы, применяемые в настоящее время при создании приложений на Excel. Показано, что программирование не только не усложняет работы на Excel, но во многих случаях и упрощает эту работу, избавляя пользователя от рутинной работы и возможных ошибок при обработке больших массивов данных. Пособие посвящено методам создания приложений на Excel 2019 при использовании средств программирования на VBA. Имеется очень большой список литературы по Excel, однако до сих пор вопросы программирования остаются за пределами внимания большинства авторов. В то же время программирование позволяет автоматизировать прикладные задачи, что облегчает их разработку и ускоряет их выполнение. Пособие включает необходимые теоретические сведения по восьми темам. Подробно рассмотрена методология использования ссылок в стиле R1C1, позволяющая повысить эффективность работы приложений, что особенно существенно проявляется при создании программ на VBA. Рассмотрены различные варианты использования диапазонов (объект Range), упрощающие взаимодействие с листами рабочей книги. Подробно даны все необходимые сведения для написания программ на VBA. Содержание учебного пособия соответствует актуальным требованиям Федерального государственного образовательного стандарта высшего образования. Для студентов бакалавриата технических и экономических специальностей и всех тех, кто разрабатывает приложения на Excel.

459 RUR

/ / похожие

Подробнее

Гуриков С.
Введение в программирование на языке Visual Basic for Applications VBA Учебное пособие

Алексей Васильев Excel 2010 на примерах

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

175 RUR

/ / похожие

Подробнее

Александр Анатольевич Казанский Прикладное программирование на Excel 2019 2-е изд.
, пер. и доп. Учебное пособие для СПО

Книга построена на основе последней версии Office 365 и отражает основные тенденции и методы, применяемые в настоящее время при создании приложений на Excel. Показано, что программирование не только не усложняет работы на Excel, но во многих случаях и упрощает эту работу, избавляя пользователя от рутинной работы и возможных ошибок при обработке больших массивов данных. Пособие посвящено методам создания приложений на Excel 2019 при использовании средств программирования на VBA. Имеется очень большой список литературы по Excel, однако до сих пор вопросы программирования остаются за пределами внимания большинства авторов, тогда как оно позволяет автоматизировать прикладные задачи, что облегчает их разработку и ускоряет их выполнение. Пособие включает необходимые теоретические сведения по восьми темам. Подробно рассмотрена методология использования ссылок в стиле R1C1, позволяющая повысить эффективность работы приложений, что особенно существенно проявляется при создании программ на VBA. Рассмотрены различные варианты использования диапазонов (объект Range), упрощающие взаимодействие с листами рабочей книги. Подробно даны все необходимые сведения для написания программ на VBA. Соответствует актуальным требованиям Федерального государственного образовательного стандарта среднего профессионального образования и профессиональным требованиям. Для студентов образовательных учреждений среднего профессионального образования и всех тех, кто разрабатывает приложения на Excel.

459 RUR

/ / похожие

Подробнее

О. А. Сдвижков Непараметрическая статистика в MS Excel и VBA

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

239 RUR

/ / похожие

Подробнее

Michael Alexander Excel 2019 Power Programming with VBA

Maximize your Excel experience with VBA Excel 2019 Power Programming with VBA  is fully updated to cover all the latest tools and tricks of Excel 2019. Encompassing an analysis of Excel application development and a complete introduction to Visual Basic for Applications (VBA), this comprehensive book presents all of the techniques you need to develop both large and small Excel applications. Over 800 pages of tips, tricks, and best practices shed light on key topics, such as the Excel interface, file formats, enhanced interactivity with other Office applications, and improved collaboration features.  Understanding how to leverage VBA to improve your Excel programming skills can enhance the quality of deliverables that you produce—and can help you take your career to the next level. Explore fully updated content that offers comprehensive coverage through over 900 pages of tips, tricks, and techniques Leverage templates and worksheets that put your new knowledge in action, and reinforce the skills introduced in the text Improve your capabilities regarding Excel programming with VBA, unlocking more of your potential in the office Excel 2019 Power Programming with VBA  is a fundamental resource for intermediate to advanced users who want to polish their skills regarding spreadsheet applications using VBA.

4239.19 RUR

/ / похожие

Подробнее

Сдвижков О. Непараметрическая статистика в MS Excel и VBA

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

679 RUR

/ / похожие

Подробнее

Н. В. Галиева Компьютерные технологии в науке, экономике и управлении

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

752 RUR

/ / похожие

Подробнее

Bernd Held Microsoft Excel VBA — Das Praxisbuch. Für Microsoft Excel 2007-2013.

Офисные решения с использованием Microsoft Excel 2007 и VBA (+CD)

Microsoft Excel — одна из наиболее часто используемых программ в повседневной работе офисных специалистов. Практически любому работнику, от секретаря до директора, приходилось проводить расчеты, оформлять прайс-листы или строить графики и диаграммы в Excel. При этом большинство пользователей, как правило, регулярно выполняют однотипные операции, даже не подозревая, что встроенные средства автоматизации позволяют оптимизировать работу и сократить срок ее выполнения в несколько раз!Именно возможностям оптимизации работы в Excel и посвящена эта книга. Здесь рассмотрены способы решения самых распространенных задач, которые ежедневно встречаются в работе менеджеров, бухгалтеров, экономистов, маркетологов. В качестве инструментального средства используется Microsoft Excel и VBA. Ряд примеров демонстрирует интеграцию Excel с разработками в сети Интернет и системой 1С:Предприятие. Все примеры, рассматриваемые в книге, можно найти на прилагаемом компакт-диске.

56 RUR

/ / похожие

Подробнее

О. А. Сдвижков Дискретная математика и математические методы экономики с применением VBA Excel

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

279 RUR

/ / похожие

Подробнее

Ольга Аникина Использование технологии табличного моделирования генетических алгоритмов для решения задач оптимизации

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

152 RUR

/ / похожие

Подробнее

Michael Alexander Excel 2016 Power Programming with VBA

Maximize your Excel experience with VBA Excel 2016 Power Programming with VBA is fully updated to cover all the latest tools and tricks of Excel 2016. Encompassing an analysis of Excel application development and a complete introduction to Visual Basic for Applications (VBA), this comprehensive book presents all of the techniques you need to develop both large and small Excel applications. Over 800 pages of tips, tricks, and best practices shed light on key topics, such as the Excel interface, file formats, enhanced interactivity with other Office applications, and improved collaboration features. In addition to the procedures, tips, and ideas that will expand your capabilities, this resource provides you with access to over 100 online example Excel workbooks and the Power Utility Pak, found on the Mr. Spreadsheet website. Understanding how to leverage VBA to improve your Excel programming skills can enhance the quality of deliverables that you produce—and can help you take your career to the next level. Explore fully updated content that offers comprehensive coverage through over 900 pages of tips, tricks, and techniques Leverage templates and worksheets that put your new knowledge in action, and reinforce the skills introduced in the text Access online resources, including the Power Utility Pak, that supplement the content Improve your capabilities regarding Excel programming with VBA, unlocking more of your potential in the office Excel 2016 Power Programming with VBA is a fundamental resource for intermediate to advanced users who want to polish their skills regarding spreadsheet applications using VBA.

4076.81 RUR

/ / похожие

Подробнее

Michael Alexander Excel 2019 Power Programming with VBA

Сергей Кашаев Офисные решения с использованием Microsoft Excel 2007 и VBA

Microsoft Excel – одна из наиболее часто используемых программ в повседневной работе офисных специалистов. Практически любому работнику, от секретаря до директора, приходилось проводить расчеты, оформлять прайс-листы или строить графики и диаграммы в Excel. При этом большинство пользователей, как правило, регулярно выполняют однотипные операции, даже не подозревая, что встроенные средства автоматизации позволяют оптимизировать работу и сократить срок ее выполнения в несколько раз! Именно возможностям оптимизации работы в Excel и посвящена эта книга. Здесь рассмотрены способы решения самых распространенных задач, которые ежедневно встречаются в работе менеджеров, бухгалтеров, экономистов, маркетологов. В качестве инструментального средства используется Microsoft Excel и VBA. Ряд примеров демонстрирует интеграцию Excel с разработками в сети Интернет и системой 1С:Предприятие. Диск с примерами прилагается только к печатному изданию книги.

51 RUR

/ / похожие

Подробнее

Excel VBA macro tutorial для начинающих с примерами

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

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

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

Что такое макросы в Excel?

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

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

Довольно часто можно услышать, как люди называют «макрос» «VBA». Технически есть различие: макрос — это часть кода, а Visual Basic для приложений (VBA) — это язык программирования, созданный Microsoft для написания макросов.

Зачем нужны макросы Excel?

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

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

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

Как создать макрос в Excel

Существует два способа создания макросов в Excel — с помощью средства записи макросов и редактора Visual Basic.

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

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

Даже если вы ничего не знаете о программировании в целом и VBA в частности, вы можете легко автоматизировать часть своей работы, просто разрешив Excel записывать ваши действия в виде макроса.Пока вы выполняете эти шаги, Excel внимательно отслеживает и записывает ваши щелчки мыши и нажатия клавиш на языке VBA.

Macro Recorder фиксирует почти все, что вы делаете, и выдает очень подробный (часто избыточный) код. После того, как вы остановили запись и сохранили макрос, вы можете просмотреть его код в редакторе Visual Basic и внести небольшие изменения. Когда вы запускаете макрос, Excel возвращается к записанному коду VBA и выполняет те же действия.

Чтобы начать запись, нажмите кнопку Record Macro либо на вкладке Developer , либо на панели Status .

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

Написание макроса в редакторе Visual Basic

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

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

Сначала нажмите Alt + F11, чтобы открыть редактор Visual Basic. А затем вставьте код в эти два быстрых шага:

  1. В проводнике проекта слева щелкните правой кнопкой мыши целевую книгу и выберите Вставить > Модуль .
  2. В окне кода справа вставьте код VBA.

Когда закончите, нажмите F5, чтобы запустить макрос.

Подробные инструкции см. В разделе «Как вставить код VBA в Excel».

Как запускать макросы в Excel

Есть несколько способов запустить макрос в Excel:

  • Чтобы запустить макрос из рабочего листа, нажмите кнопку Macros на вкладке Developer или нажмите сочетание клавиш Alt + F8.
  • Чтобы запустить макрос из редактора VBA, нажмите:
    • F5 для запуска всего кода.
    • F8, чтобы просмотреть код построчно. Это очень полезно для тестирования и устранения неполадок.

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

Как включить макросы в Excel

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

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

Дополнительные сведения о безопасности макросов см. В разделе «Включение и отключение макросов в Excel».

Как изменить настройки макроса

Microsoft Excel определяет, разрешить или запретить выполнение кодов VBA в ваших книгах, на основе параметра макроса, выбранного в Trust Center .

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

  1. Перейдите на вкладку File и выберите Options .
  2. На левой панели выберите Центр управления безопасностью , а затем щелкните Параметры центра управления безопасностью .
  3. В диалоговом окне Trust Center щелкните слева Macro Settings , выберите нужный вариант и щелкните OK .

На скриншоте ниже выбрана настройка макроса по умолчанию:

Для получения дополнительной информации см. Объяснение настроек макроса Excel.

Как просматривать, редактировать и отлаживать коды VBA в Excel

Любые изменения в коде макроса, независимо от того, создается ли он автоматически средством записи макросов Excel или написан вами, вносятся в редакторе Visual Basic.

Чтобы открыть редактор VB, нажмите Alt + F11 или нажмите кнопку Visual Basic на вкладке Developer .

Чтобы просмотреть и отредактировать код определенного макроса, в Project Explorer слева дважды щелкните модуль, который его содержит, или щелкните модуль правой кнопкой мыши и выберите Просмотреть код .Это откроет окно кода, где вы можете редактировать код.

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

Как скопировать макрос в другую книгу

Вы создали макрос в одной книге и теперь хотите повторно использовать его и в других файлах? Есть два способа скопировать макрос в Excel:

Скопируйте модуль, содержащий макрос

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

  1. Откройте обе книги — ту, которая содержит макрос, и ту, в которую вы хотите его скопировать.
  2. Откройте редактор Visual Basic.
  3. На панели Project Explorer найдите модуль, содержащий макрос, и перетащите его в целевую книгу.

На скриншоте ниже мы копируем Module1 из Book1 в Book2 :

Скопируйте исходный код макроса

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

  1. Откройте обе книги.
  2. Откройте редактор Visual Basic.
  3. На панели Project Explorer дважды щелкните модуль, содержащий макрос, который вы хотите скопировать, чтобы открыть его окно кода.
  4. В окне «Код» найдите целевой макрос, выберите его код (начиная с Sub и заканчивая End Sub ) и нажмите Ctrl + C, чтобы скопировать его.
  5. В проводнике проекта найдите целевую книгу, а затем либо вставьте в нее новый модуль (щелкните книгу правой кнопкой мыши и выберите Insert > Module ), либо дважды щелкните существующий модуль, чтобы открыть его окно кода.
  6. В окне кода целевого модуля нажмите Ctrl + V, чтобы вставить код. Если модуль уже содержит код, прокрутите вниз до последней строки кода и вставьте скопированный макрос.

Как удалить макросы в Excel

Если вам больше не нужен определенный код VBA, вы можете удалить его с помощью диалогового окна Macro или редактора Visual Basic.

Удаление макроса из книги

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

  1. На вкладке Developer в группе Code нажмите кнопку Macros или нажмите сочетание клавиш Alt + F8.
  2. В диалоговом окне Macro выберите макрос, который вы хотите удалить, и нажмите Удалить .

Удаление макроса с помощью редактора Visual Basic

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

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

  1. В Project Explorer щелкните правой кнопкой мыши модуль и выберите Удалить из контекстного меню.
  2. Когда вас спросят, хотите ли вы экспортировать модуль перед его удалением, нажмите Нет .

Чтобы удалить конкретный макрос , просто удалите его исходный код прямо в окне кода. Или вы можете удалить макрос с помощью меню Tools редактора VBA:

  1. В меню Инструменты выберите Макросы . Появится диалоговое окно Macros .
  2. В Macros В раскрывающемся списке выберите проект, содержащий нежелательный макрос.
  3. В поле Macro Name выберите макрос.
  4. Нажмите кнопку Удалить .

Как сохранить макросы в Excel

Чтобы сохранить макрос в Excel, записанный или записанный вручную, просто сохраните книгу с включенным макросом (* .xlms). Вот как:

  1. В файле, содержащем макрос, нажмите кнопку Сохранить или нажмите Ctrl + S.
  2. Откроется диалоговое окно Сохранить как . Выберите книгу Excel с поддержкой макросов (*.xlsm) из раскрывающегося списка Сохранить как тип и щелкните Сохранить :

Как экспортировать и импортировать макросы в Excel

Если вы хотите поделиться своими кодами VBA с кем-нибудь или перенести их на другой компьютер, самый быстрый способ — экспортировать весь модуль в виде файла .bas.

Экспорт макросов

Чтобы экспортировать коды VBA, вам нужно сделать следующее:

  1. Откройте книгу, содержащую макросы.
  2. Нажмите Alt + F11, чтобы открыть редактор Visual Basic.
  3. В проводнике проекта щелкните правой кнопкой мыши модуль, содержащий макросы, и выберите Export File .
  4. Перейдите в папку, в которой вы хотите сохранить экспортированный файл, назовите файл и нажмите Сохранить .

Импорт макросов

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

  1. Откройте книгу, в которую вы хотите импортировать макросы.
  2. Откройте редактор Visual Basic.
  3. В Project Explorer щелкните правой кнопкой мыши имя проекта и выберите Import File .
  4. Перейдите к файлу .bas и щелкните Открыть .

Примеры макросов Excel

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

Показать все листы в книге

В этом примере мы используем объект ActiveWorkbook для возврата текущей активной книги и цикл For Each для последовательного просмотра всех листов в книге. Для каждого найденного листа мы устанавливаем для свойства Visible значение xlSheetVisible .

Sub Unhide_All_Sheets ()
Dim wks как рабочий лист

За каждую неделю в ActiveWorkbook.Рабочие листы
wks.Visible = xlSheetVisible
Следующие недели
Конец подписки
 

Скрыть активный рабочий лист или сделать его очень скрытым

Для управления текущим активным листом используйте объект ActiveSheet . Этот пример макроса изменяет свойство Visible активного листа на xlSheetHidden , чтобы скрыть его. Чтобы сделать лист очень скрытым, установите для свойства Visible значение xlSheetVeryHidden .

Sub Hide_Active_Sheet ()
ActiveSheet.Видимый = xlSheetHidden
Конец подписки
 

Отменить объединение всех объединенных ячеек в выбранном диапазоне

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

Sub Unmerge_Cells ()
Selection.Cells.UnMerge
Конец подписки
 

Показать окно сообщения

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

Sub Show_Message ()
MsgBox («Привет, мир!»)
Конец подписки
 

В реальных макросах окно сообщения обычно используется для информации или подтверждения. Например, перед выполнением действия (в нашем случае разделение ячеек) вы отображаете окно сообщения Да / Нет . Если пользователь нажимает «Да», выбранные ячейки не объединяются.

Sub Unmerge_Selected_Cells ()
Тусклый ответ в виде строки

Answer = MsgBox («Вы уверены, что хотите разъединить эти ячейки?», VbQuestion + vbYesNo, «Разъединить ячейки»)
Если Ответ = vb Да, то
Выбор.Cells.UnMerge
Конец, если
Конец подписки
 

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

Ниже приведены ссылки на более сложные макросы, которые автоматизируют сложные и трудоемкие задачи:

Как защитить макросы Excel

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

Макрос блокировки для просмотра

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

  1. Откройте редактор VBA.
  2. В Project Explorer щелкните правой кнопкой мыши проект, который нужно заблокировать, и выберите VBAProject Properties…
  3. В диалоговом окне Project Properties на вкладке Protection установите флажок Lock project for view , введите пароль дважды и нажмите OK .
  4. Сохраните, закройте и снова откройте файл Excel.

При попытке просмотреть код в редакторе Visual Basic появится следующее диалоговое окно.Введите пароль и нажмите ОК.

Чтобы разблокировать макросы , просто откройте диалоговое окно Project Properties еще раз и снимите галочку с проекта Lock для просмотра окна .

Примечание. Этот метод защищает код от просмотра и редактирования, но не предотвращает его выполнение.

Защита паролем макроса от запуска

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

Дополнительная защита пароля ()
Тусклый пароль как вариант

пароль = Приложение.InputBox («Введите пароль», «Макрос, защищенный паролем»)

Выберите пароль для обращения
Case Is = False
'ничего не делать
Case Is = "пароль"
'ваш код здесь
Case Else
MsgBox «Неверный пароль»
Конец Выбрать
Конец подписки
 

Макрос использует функцию InputBox , чтобы предложить пользователю ввести пароль:

Если ввод пользователя соответствует жестко запрограммированному паролю, ваш код будет выполнен. Если пароль не совпадает, отображается окно сообщения «Неверный пароль».Чтобы запретить пользователю подглядывать за паролем в редакторе Visual Basic, не забудьте заблокировать макрос для просмотра, как описано выше.

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

Советы по макросам Excel

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

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

Следующие строки должны быть добавлены в начало вашего кода (после строк, начинающихся с Dim или после строки Sub ):

Application.ScreenUpdating = False
Заявление.Расчет = xlCalculationManual
 

Следующие строки должны быть добавлены в конец вашего кода (до End Sub ):

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
 

Как разбить код VBA на несколько строк

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

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

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

  • Не разделяйте код между именами аргументов.
  • Не используйте подчеркивание в комментариях. Для многострочных комментариев введите апостроф (‘) в начале каждой строки.
  • Подчеркивание должно быть последним символом в строке, за которым не должно быть ничего другого.

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

Answer = MsgBox ("Вы действительно хотите отключить эти ячейки?", _
vbQuestion + vbYesNo, «Разъединить ячейки»)
 

Как сделать макрос доступным из любой книги

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

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

Как отменить действие макроса

После выполнения макроса его действие нельзя отменить, нажав Ctrl + Z или нажав кнопку Отменить .

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

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

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

Таким образом, если вы (или ваши пользователи) недовольны результатами, вы можете просто закрыть, а затем снова открыть книгу.

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

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

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

  • Для ThisWorkbook и для каждого отдельного листа откройте окно кода, нажмите Ctrl + A, чтобы выбрать весь код и удалить его (даже если окно кода выглядит пустым).
  • Удалите все пользовательские формы и модули классов, содержащиеся в книге.

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

Вас также может заинтересовать

Создание макросов за 7 простых шагов

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

Если у вас есть (и, возможно, даже если вы этого не сделали), вы, вероятно, заметили, что рутинные вещи, такие как форматирование или вставка стандартного текста, обычно занимают значительное количество времени.Даже если у вас есть практика в выполнении этих действий и вы можете выполнять их относительно быстро, те «5 минут», которые вы тратите почти каждый день, вставляя название своей компании и детали во все рабочие листы Excel, которые вы отправляете клиентам / коллегам, начинают добавляться со временем.

В большинстве (не во всех) случаях затраты времени на эти общие, но повторяющиеся операции не дают пропорциональных результатов. Фактически, большинство из них являются прекрасными примерами принципа 80/20 в действии. Они являются частью большинства усилий, которые мало влияют на результат.

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

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

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

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

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

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

  • Введите «Это лучший учебник по Excel» в активную ячейку.
  • Автоматически подогнать под ширину столбца активной ячейки, чтобы набранный текст поместился в один столбец.
  • Раскрасьте активную ячейку в красный цвет.
  • Измените цвет шрифта активной ячейки на синий.

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

7 шагов, которые я объясню ниже, достаточно, чтобы вы начали создавать базовые макросы Excel .

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

  • Знакомство с Visual Basic для приложений (или VBA) и редактором Visual Basic (или VBE).
  • Объяснение того, как вы можете увидеть фактические инструкции программирования, стоящие за макросом, и как вы можете использовать это, чтобы начать изучение того, как писать код макроса Excel.
  • Дайте вам несколько советов, которые вы можете начать использовать прямо сейчас, чтобы улучшить и ускорить процесс изучения макросов и программирования на VBA.

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

Вы готовы создать свой первый макрос Excel?

Тогда приступим к подготовке…

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

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

В Excel большинство полезных команд при работе с макросами Excel и Visual Basic для приложений находятся на вкладке «Разработчик».

Вкладка «Разработчик» по умолчанию скрыта в Excel. Поэтому, если вы (или кто-то другой) не добавили вкладку «Разработчик» на ленту, вам нужно заставить Excel отображать ее, чтобы иметь доступ к соответствующим инструментам при настройке макроса.

В этом разделе я объясню, как добавить вкладку «Разработчик» на ленту. В конце пошагового объяснения есть изображение, показывающее весь процесс.

Обратите внимание, что вам нужно только один раз попросить Excel отобразить вкладку «Разработчик» . Предполагая, что настройка не будет отменена позже, Excel продолжит отображать вкладку в будущих возможностях.

1. Шаг №1.

Откройте диалоговое окно «Параметры Excel» одним из следующих способов:

  • Метод №1.

    Шаг № 1: С помощью мыши щелкните ленту правой кнопкой мыши.

    Шаг № 2: Excel отображает контекстное меню.

    Шаг № 3: Щелкните «Настроить ленту…».

    Следующее изображение иллюстрирует эти 3 шага:

  • Способ №2.

    Шаг № 1: Щелкните вкладку «Файл».

    Шаг № 2: На панели навигации, расположенной в левой части экрана, щелкните «Параметры».

    На следующем изображении показано, как это сделать:

  • Способ №3.

    Используйте сочетания клавиш, такие как «Alt + T + O» или «Alt + F + T».

2. Шаг №2.

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

3. Шаг 3.

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

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

Поле слева от «Разработчик» по умолчанию пусто. В этом случае вкладка Разработчик не отображается на ленте. Если в этом поле установлен флажок, на ленте появится вкладка Разработчик.

4. Шаг 4.

Если поле слева от «Разработчик» пусто, щелкните по нему, чтобы поставить отметку.

Если в поле уже стоит галочка, ничего делать не нужно (у вас уже должна быть вкладка «Разработчик» на ленте).

5. Шаг 5.

Нажмите кнопку «ОК» в правом нижнем углу диалогового окна «Параметры Excel».

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

Как включить вкладку разработчика в изображениях

На изображении ниже вы шаг за шагом выполните описанный выше процесс:

Инструменты для создания макросов Excel

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

  • Регистратор макросов, позволяющий записывать выполняемые вами действия в книгу Excel.
  • Редактор Visual Basic, требующий написания инструкций, которым должен следовать Excel, на языке программирования Visual Basic для приложений.

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

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

Как объяснил Джон Уокенбах (один из ведущих авторитетов в Microsoft Excel) в Библии Excel 2013 , если ваша цель состоит только в записи и воспроизведении макросов:

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

Однако, если вы хотите по максимуму использовать макросы Excel и полностью использовать их возможности, вам в конечном итоге потребуется изучить VBA.Как говорят г-н Эксель (Билл Джелен) (еще один из выдающихся мастеров Excel) и Трейси Сирстад (консультант по Excel и Access) в Excel 2013 VBA и Macros , запись макроса полезна, когда вы новичок и не имеете опыта в макропрограммировании, но…

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

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

Однако на данный момент я объясню ниже, как можно записать макрос Excel с помощью рекордера:

7 простых шагов для создания вашего первого макроса

ОК…

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

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

1. Шаг №1.

Щелкните вкладку Разработчик.

2. Шаг №2.

Убедитесь, что запись относительных ссылок включена, установив флажок «Использовать относительные ссылки».

Если запись относительных ссылок не включена, как показано на скриншоте ниже, нажмите «Использовать относительные ссылки».

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

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

Когда относительная запись выключена (что по умолчанию), записываются абсолютные / точные адреса ячеек. Когда запись относительных ссылок включена, любые действия, записываемые Excel, относятся к активной ячейке. Другими словами, абсолютная запись, как объяснил Билл Джелен в Excel 2013 in Depth , «чрезвычайно буквальна».

Например, предположим, что вы записываете макрос Excel, который:

  • Введите «Это лучший учебник по Excel» в активную ячейку.
  • Копирует только что набранный текст и вставляет его в ячейку непосредственно под ним.

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

  • Введите «Это лучший учебник по Excel» в активной ячейке.
  • Скопируйте текст и вставьте его в ячейку A4 , которая находится непосредственно под активной ячейкой в ​​момент начала записи макроса.

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

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

3. Шаг 3.

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

4.Шаг №4.

Появится диалоговое окно «Запись макроса». Этот диалог позволяет вам:

  • Присвойте имя макросу.

    Excel присваивает макросам имя по умолчанию: «Макрос1», «Макро2», «Макро3» и так далее. Однако, как объяснил Джон Уокенбах в Excel VBA Programming for Dummies , , обычно более полезно использовать описательное имя .

    Основные правила для имен макросов заключаются в том, что они должны начинаться с буквы или символа подчеркивания (_) (не числа), не могут содержать пробелов или специальных символов, кроме подчеркивания (что разрешено), и не должны конфликтовать с ранее существовавшие имена.Я подробно освещаю тему именования макросов здесь (для процедур Sub) и здесь (для процедур Function).

    Например, «Лучшее руководство по Excel» не является приемлемым названием, но «Best_Excel_Tutorial» работает:

  • Назначьте макросу сочетание клавиш.

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

    Назначаемое сочетание клавиш имеет вид «Ctrl + комбинация клавиш».В этом контексте комбинация клавиш означает либо (i), , либо отдельную букву, либо (ii) комбинацию буквы и клавиши Shift.

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

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

    Возьмем, к примеру, сочетание клавиш «Ctrl + B», которое является встроенным сочетанием клавиш для команды Полужирный шрифт.

    Если, однако, вы назначите сочетание клавиш «Ctrl + B» для определенного макроса, встроенное сочетание клавиш для команды «Полужирный» будет отключено. Как следствие, если вы нажмете «Ctrl + B», макрос будет выполнен, но шрифт выделенного текста не будет выделен жирным шрифтом.

    Один из способов решения этой проблемы, который обычно работает, — назначить сочетания клавиш в форме «Ctrl + Shift + Letter». Риск перезаписи и отключения ранее существовавшего сочетания клавиш меньше, но в любом случае я предлагаю вам продолжить с , будьте осторожны с точной комбинацией клавиш, которую вы выбираете .

    Это означает, что, например, вместо выбора «Ctrl + B» в качестве сочетания клавиш мы могли бы назначить «Ctrl + Shift + B»:

  • Решите, где вы хотите сохранить макрос.

    Вы можете сохранить макрос в книге, над которой вы работаете («Эта книга»), в новом файле Excel («Новая книга») или в личной книге макросов («Личная книга макросов»).

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


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

    Более продвинутый вариант хранения — «Личная книга макросов». В Excel 2013 In Depth Билл Джелен определяет личную книгу макросов как

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

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

  • Создайте описание макроса.

    Наличие описания макроса не является обязательным . Однако, как объяснил Грег Харви в Excel 2013 All-in-One для чайников :

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

    Харви также предлагает указать дату сохранения макроса и дату его создания.

5. Шаг 5.

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

6. Шаг 6.

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

7. Шаг 7.

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

Вот и все… На самом деле требуется всего 7 простых шагов, чтобы записать ваш первый макрос .

Пример создания макроса Excel

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

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

  • Введите «Это лучший учебник по Excel» в активную ячейку.
  • Автоматически подогнать ширину столбца активной ячейки.
  • Раскрасьте активную ячейку в красный цвет.
  • Измените цвет шрифта активной ячейки на синий.

Я уже объяснял, как сделать так, чтобы вкладка «Разработчик» отображалась в Excel. Поскольку вам нужно только один раз запросить Excel для отображения вкладки «Разработчик», изображение ниже показывает только фактическую запись макроса .

В этом конкретном примере я использовал параметры, описанные выше, при работе с диалоговым окном «Запись макроса».Точнее: имя, присвоенное макросу, — «Best_Excel_Tutorial», сочетание клавиш — «Ctrl + Shift + B», а макрос Excel был сохранен в книге Excel, над которой я работал.

Готово?

Если вы закончили…

Поздравляю! Вы создали свой первый макрос Excel!

Потрясающе!

Теперь вы можете запустить новый макрос с помощью назначенного сочетания клавиш (в данном случае «Ctrl + Shift + B»).Когда вы станете более продвинутым пользователем макросов, вы увидите, что есть несколько других способов выполнить макрос, например макрос Best_Excel_Tutorial выше.

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

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

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

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

Итак, еще раз, поздравляем с созданием вашего первого макроса Excel!

Следующий шаг в создании макросов Excel: введите VBA

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

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

Программирование макросов Excel с использованием VBA более мощное средство, чем простая запись макросов по нескольким причинам, основная из которых заключается в том, что использование кода VBA позволяет выполнять задачи, которые невозможно записать с помощью Macro Recorder.

Например:

  • В Библии Excel 2013 Джон Уокенбах перечисляет некоторые примеры задач, которые невозможно записать, таких как отображение «настраиваемых диалоговых окон» или обработка данных в серии книг и даже создание специальных надстроек.”
  • В Excel 2013 VBA и Macros Билл Джелен и Трейси Сирстад говорят нам, что «важно понимать, что средство записи макросов никогда не будет правильно записывать назначение кнопки автосуммирования».

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

Начало обучения написанию кода макроса Excel

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

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

Давайте откроем VBE, щелкнув «Visual Basic» на вкладке «Разработчик» или используя сочетание клавиш «Alt + F11».

Excel открывает редактор Visual Basic, который выглядит примерно так:

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

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

  1. На что я смотрю?
  2. Возможно, что более важно, где код моего макроса?

Раз уж у вас могут возникнуть те же вопросы, давайте на них ответим.

Что вы смотрите в редакторе Visual Basic

Вы можете разделить VBE на 6 основных разделов:

1. Пункт №1: Строка меню.

Строка меню редактора Visual Basic во многом похожа на строки меню, которые вы используете в других программах.

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

Если вы работаете с более поздними версиями Excel (2007 или новее), вы, возможно, заметили, что в самом Excel нет строки меню, а, скорее, ленты. Причина этого в том, что в Microsoft Office 2007 Microsoft заменила меню и панели инструментов некоторых программ лентой.

2. Элемент № 2: Панель инструментов.

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

Точнее, панель инструментов содержит такие элементы, как экранные кнопки, значки, меню и подобные элементы. Панель инструментов, показанная на снимке экрана выше, является стандартной панелью инструментов редактора Visual Basic по умолчанию. Как объяснил Джон Уокенбах в Excel VBA Programming for Dummies , большинство людей (включая самого Вокенбаха) «просто оставляют их такими, какие они есть».

Как объяснялось выше, если у вас более новая версия Excel (начиная с 2007), вы не увидите ни панели инструментов, ни строки меню в окне Excel, потому что Microsoft заменила оба этих элемента лентой.

3. Пункт № 3: Окно проекта (или проводник проекта).

Окно проекта — это часть VBE, где вы можете найти список всех открытых книг Excel и загруженных надстроек. Этот раздел полезен для целей навигации.

Как вы можете видеть на изображении ниже, редактор Visual Basic позволяет разворачивать или сворачивать различные разделы списка, щелкая «+» или «-» (в зависимости от обстоятельств), который отображается слева. сторона соответствующей ветви.

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

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

Например, на изображении выше есть 2 папки (объекты и модули Microsoft Excel), а в папке объектов Microsoft Excel (развернутой) есть два элемента (Sheet1 и ThisWorkbook).

Если вы не видите Project Explorer, возможно, он скрыт.

Чтобы открыть окно проекта, используйте сочетание клавиш «Ctrl + R», щелкните значок Project Explorer на панели инструментов или перейдите в меню «Просмотр» и нажмите «Project Explorer»:

4.Пункт № 4: Окно свойств.

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

Окно свойств можно скрыть или показать.

Если ваш редактор Visual Basic в данный момент не отображает окно свойств, используйте сочетание клавиш «F4», щелкните значок «Окно свойств» на панели инструментов или разверните меню «Просмотр» и нажмите «Окно свойств»:

5.Пункт № 5: Окно программирования (или кода).

Окно программирования — это то место, где появляется записанный вами код VBA.

В следующем разделе я объясню, как заставить редактор Visual Basic отображать код ваших макросов.

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

6. Пункт № 6: Непосредственное окно.

Немедленное окно полезно для обнаружения ошибок, проверки или отладки.

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

  • Это окно по умолчанию скрыто.
  • Как объяснил Джон Уокенбах в Excel VBA Programming for Dummies , это окно не так полезно для новичков и, следовательно, может быть более целесообразным сохранить его скрытым или, если в настоящее время отображается, скрыть его.

Чтобы показать непосредственное окно, используйте сочетание клавиш «Ctrl + G» или войдите в меню «Вид» и нажмите «Немедленное окно».

Теперь, когда вы знаете, на что смотрите при работе с редактором Visual Basic, давайте продолжим и узнаем, как можно увидеть фактический код созданного вами макроса…

Где находится ваш код макроса VBA

Раздел VBE, который вы обычно используете для навигации, — это окно проекта. Вернемся к нему и подробнее рассмотрим скриншот выше:

На снимке экрана выше «VBAProject» развернут и показывает две папки: Объекты Microsoft Excel и Модули.Вы можете видеть элементы внутри первой папки (объекты Microsoft Excel), но не внутри второй (модули).

Чтобы развернуть папку «Модули» и увидеть ее компоненты, щелкните «+»:

Project Explorer выглядит примерно так:

Элементы, отображаемые в папке «Объекты Microsoft Excel», могут показаться вам знакомыми. Однако вы можете задаться вопросом…

Что такое модуль?

Модуль, по словам Джона Уокенбаха в Библии Excel 2013 , «контейнер для кода VBA».

Другими словами, модуль — это место, где фактически хранится код VBA. Если вы следовали примеру из этого руководства по макросам Excel для начинающих, ваш код макроса находится в модуле, точнее в Module1:

.

Чтобы редактор Visual Basic отображал код VBA, дважды щелкните «Module1» или щелкните правой кнопкой мыши «Module1» и выберите «View Code»:

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

Имеет ли это для вас смысл?

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

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

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

Все эти переживания и вопросы нормальные.

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

Изучение VBA с нуля на примере базового макроса Excel

Сначала хорошие новости.

Как вы могли заметить, код VBA (отчасти) похож на английский код . В VBA для Excel Made Simple Кейт Дарлингтон (опытный преподаватель программирования) объясняет, как структурированный английский язык (который похож на обычный английский) может быть полезным промежуточным шагом для продумывания инструкций, которым должен следовать макрос, прежде чем фактически писать эти инструкции на Visual Basic для приложений.

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

  • ActiveCell.Select.

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

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

  • Selection.Columns.Autofit.

    Эта строка кода снова начинается с выделения. Однако затем он ссылается на столбцы и автоматическую подгонку.

    Если вы помните, второе, что должен был сделать макрос Best_Excel_Tutorial, — это автоматически подогнать ширину столбца активной ячейки, чтобы набранный текст («Это лучший учебник по Excel») уместился в одном клетка.

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

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

Основы работы с макросом Excel

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

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

Цель этой части руководства не в том, чтобы сделать вас экспертом в Visual Basic для приложений, а в том, чтобы дать вам общее представление о том, как работает VBA, и, что более важно, показать вам, какие инструкции выполняет Excel в чтобы написать «Это лучший учебник по Excel», автоматически подогнать столбец, покрасить активную ячейку в красный цвет и изменить цвет шрифта на синий.

Вы заметите (не только в этот раз, но обычно при записи макросов), что код VBA может включать некоторые действия, которые вы на самом деле не выполняли.По словам Джона Уокенбаха, в Библии Excel 2013 это «просто побочный продукт метода, который Excel использует для преобразования действий в код».

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

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

Пункт №1: Sub Best_Excel_Tutorial ()

Sub означает подпроцедуру.Это один из двух типов макросов или процедур, которые вы можете использовать в Excel.

Подпроцедуры выполняют определенные действия или действия в Excel.

Другой тип процедуры — это функциональная процедура. Функциональные процедуры используются для выполнения вычислений и возврата значения.

Итак… , что делает эта строка?

Он просто сообщает Excel, что вы пишете новую процедуру Sub.

Подпроцедуры всегда должны начинаться с:

  • Слово «Sub».
  • Имя процедуры, в данном случае Best_Excel_Tutorial.
  • Круглые скобки.

Кроме того, подпроцедуры всегда должны заканчиваться словами «End Sub», как вы можете видеть в последней строке кода, показанной на скриншоте выше (обозначенной цифрой 8).

Элемент № 2: Строки кода VBA зеленым шрифтом, начинающиеся с «

»

Я имею в виду следующие строки:

'
Макрос Best_Excel_Tutorial
'Типы "Это лучший учебник по Excel".Автоматически подходит к столбцу. Цвет ячейки красный. Цвет шрифта синий.
'
'Сочетание клавиш: Ctrl + Shift + B
'
 

Это просто комментарии. Комментарии имеют следующие основные характеристики:

  • Они начинаются (или обозначены) апострофом (‘).
  • Visual Basic для приложений, по сути, игнорирует текст, идущий после апострофа до конца строки. Поэтому при выполнении макроса Excel просто игнорирует комментарии.
  • Как следствие предыдущего пункта, основная цель комментария — показать информацию об этом конкретном макросе и помочь вам понять ее.Комментарии могут объяснить такие вещи, как цель процедуры или самые последние изменения, внесенные в процедуру.

Элемент # 3: ActiveCell.Select

Как объяснено выше, эта строка указывает Excel выбрать текущую активную ячейку. Точнее:

  • «ActiveCell» ссылается на текущую активную ячейку в активном окне.
  • «Выбрать» активирует объект на текущем активном листе Excel, в данном случае текущую активную ячейку, на которую ActiveCell ссылается.

Item # 4: ActiveCell.FormulaR1C1 = «Это лучший учебник по Excel»

Этот оператор указывает Excel написать «Это лучший учебник по Excel» в активной ячейке.

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

  • Вы уже знаете, какова цель ActiveCell.
  • «FormulaR1C1» указывает Excel установить формулу для объекта, в данном случае текущей активной ячейки, на которую ссылается ActiveCell. Последняя часть (R1C1) ссылается на нотацию R1C1, в которой ссылки на ячейки являются относительными, а не абсолютными.Я объясню нотацию R1C1 более подробно в этом руководстве. Однако помните, что в начале этого руководства я объясняю:
    • Зачем нужно включать относительную справочную запись; и
    • Как это сделать.
  • «Это лучший учебник по Excel» указывает, какая формула (в данном случае текст) должна быть помещена в объект, в данном случае активную ячейку.

Элемент № 5: Выбор. Столбцы. AutoFit

Как я объяснял выше, этот конкретный оператор заставляет Excel автоматически подбирать столбец активной ячейки, чтобы текст, набранный макросом, полностью помещался в нем.

Целью различных частей данного отчета является следующее:

  • «Выбор» просто представляет текущий выбор, в данном случае активную ячейку.
  • «Столбцы» выбирает выбранные столбцы, в данном случае столбец, в котором находится активная ячейка.
  • «AutoFit» не требует пояснений; он устанавливает ширину выбранных столбцов (как в этом случае) или высоту выбранных строк до любого размера, «обеспечивающего наилучшее соответствие».

Позиция № 6: с… в конце заявления 1

Я имею в виду следующую группу строк, которая известна как оператор With… End With:

С выделением.Интерьер
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .Color = 255
    .TintAndShade = 0
    .PatternTintAndShade = 0
Конец с
 

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

  • Он напечатал «Это лучший учебник по Excel» в активной ячейке.
  • Он автоматически подбирает ширину столбца, чтобы набранный текст умещался правильно.

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

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

Это причина, по которой существуют операторы With… End With.

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

Как вы можете видеть на скриншоте ниже, основной макрос, который вы записали, имеет два оператора With… End With:

Операторы

With… End With имеют следующую структуру:

  • В начале они должны указать «With objectExpression». В других уроках я исследую, что означает «objectExpression». На данный момент достаточно знать, что в случае примера, включенного в это руководство, «objectExpression» — это «Selection.Interior» (для первого оператора With… End With) и «Selection.Шрифт »(для второго оператора With… End With), как я объясню ниже.
  • Они могут иметь одну или несколько строк кода, которые представляют собой инструкции, выполняемые для объекта, на который была сделана ссылка.
  • В конце они должны сказать «Конец с».

В случае первого оператора With… End With каждый из этих объектов выглядит следующим образом:

Теперь, когда у вас есть базовое представление о том, что делает оператор With… End With, давайте посмотрим на первую строку построчно:

1.Строка №1: С Selection.Interior.

Эта строка сообщает Excel, что она всегда должна ссылаться на внутреннюю часть активной ячейки при выполнении операторов, которые являются частью оператора With… End With.

Как этого добиться?

  • «С» является началом оператора With… End With и сообщает Excel, что последующие строки кода ссылаются на объект, упомянутый в этой строке (работают с ним).
  • «Selection.Interior» — это «objectExpression», о котором я упоминал выше при объяснении структуры операторов With… End With.«Выбор» представляет текущий выбор, который в этом примере является активной ячейкой, тогда как «Внутренний» обозначает внутреннюю часть объекта, в данном случае внутреннюю часть активной ячейки.

2. Строка № 2: .Pattern = xlSolid.

Это первая строка оператора With… End With, который ссылается на внутреннюю часть активной ячейки.

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

  • «Узор» задает узор интерьера.
  • «xlSolid» указывает, что узор должен быть сплошного цвета.

3. Строка № 3: .PatternColorIndex = xlAutomatic.

Эта строка определяет автоматический образец для внутренней части активной ячейки следующим образом:

  • «PatternColorIndex» устанавливает цвет внутреннего узора.
  • «xlAutomatic» указывает, что цвет должен быть автоматическим.

4. Строка № 4: .Color = 25.

Это инструкция, которая фактически сообщает Excel, какой цвет следует использовать для заполнения внутренней части активной ячейки.

«Цвет» назначает цвет ячейки, тогда как число (в данном случае 255) указывает цвет, который в макросе Best_Excel_Tutorial является красным.

5. Строка № 5: .TintAndShade = 0.

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

«TintAndShade» устанавливает осветление или затемнение цвета. Когда для TintAndShade установлено значение 0 (как в этом случае), свойство фиксируется на нейтральный, и, следовательно, не происходит осветления или затемнения цвета, выбранного для активной ячейки.

6. Строка №6: .PatternTintAndShade = 0.

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

«PatternTintAndShade» устанавливает оттенок и образец оттенка для внутренней части объекта, в данном случае для выбранной ячейки.

7. Строка № 7: оканчивается на.

Эта строка сигнализирует Excel о конце оператора With… End With.

Следовательно, последующие строки кода ссылаются на другой объект, нежели тот, на который ссылается этот оператор With… End With.

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

Позиция № 7: с… в конце заявления 2

Выше вы узнали, что такое оператор With… End With и какова его общая структура.

Поэтому я сразу перехожу к построчному объяснению второго оператора With… End With макроса, который, как вы, вероятно, ожидаете, выполняет последнюю из инструкций, которые вы дали при его создании: изменение цвета шрифта активной ячейки на синий.

Вы, вероятно, будете счастливы прочитать, что это второе выражение With… End With короче первого.

Приступим к построчному объяснению…

1. Строка №1: с выделенным шрифтом.

Как я объяснил выше, это начало оператора With… End With, где «With» сообщает Excel, что следующие операторы работают с отображаемым здесь объектом.

В данном случае это объект Selection.Font.

Итак, что такое «Выбор.Шрифт.»?

«Выделение» — это текущий выбор, который в макросе Best_Excel_Tutorial является активной ячейкой, тогда как «Шрифт» (что неудивительно) является шрифтом.

Другими словами, Selection.Font означает шрифт текста в активной ячейке. Следовательно, «With Selection.Font» в основном информирует Excel о том, что все строки кода, которые являются частью оператора With… End With, ссылаются на шрифт активной ячейки.

2. Строка №2: .Color = -4165632.

Эта строка кода, как и следовало ожидать, учитывая очень похожую строку в первом операторе With… End With выше, сообщает Excel, какой цвет следует использовать для шрифта в активной ячейке.

«Цвет» назначает цвет, тогда как число (в данном случае -4165632) является фактическим цветовым кодом, который в данном случае является синим.

3. Строка № 3: .TintAndShade = 0.

Этот оператор точно такой же, как одна из строк в операторе With… End With выше. Он предписывает Excel не осветлять и не затемнять цвет шрифта.

Поскольку «TintAndShade» определяет осветление или затемнение цвета, когда он равен 0 (как здесь), Excel не осветляет и не затемняет цвет шрифта активной ячейки.

4. Строка №4: оканчивается на.

Это конец оператора With… End With.

Следовательно, любые строки кода ниже этой не ссылаются на шрифт активной ячейки.

Элемент № 8: Концевой переводник

Операторы End завершают выполнение чего-либо, в данном случае процедуры Sub.

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

Другими словами, этот является концом кода вашего первого макроса Excel .

Несколько заключительных советов относительно того, как узнать о макросах Excel

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

  • Измените части кода VBA, чтобы попробовать что-то новое.

    Например, замените «ActiveCell.FormulaR1C1 =« Это лучший учебник по Excel »» на «ActiveCell.FormulaR1C1 =« Я люблю Microsoft Excel »».


    Вы также можете изменить числа, которые определяют заполнение ячеек и цвет шрифта. Например, измените «.Color = 255» на «.Color = 10» и «.Color = –4165632» на «.Color = 200».


    Вернитесь в главное окно Excel и снова запустите макрос (например, используя назначенное вами сочетание клавиш «Ctrl + Shift + B») и проверьте, что происходит.

    Результаты существенно изменились, не так ли? Разве не интересно, какое значение может иметь пара небольших элементов в коде VBA?

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

    Например, , что, по вашему мнению, произойдет, если вы удалите «Selection.Columns.AutoFit»?


    Попробовать.

    Вернитесь снова в Excel и запустите макрос еще раз с этим удалением.

    Что случилось? Вы этого ожидали?

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

    Как?

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

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

    Возможно, даже лучше, если у вас достаточно большой экран (или два монитора), — это последовать совету Джона Уокенбаха из Библии Excel 2013 и…

    (…) настроить свой экран так, чтобы вы могли видеть код, который создается в окнах редактора VB.

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

Заключение

Еще раз поздравляю!

Пройдя это руководство по макросам Excel для начинающих, вы создали свой первый макрос и поняли код VBA, стоящий за ним .

Как вы могли заметить, настроить макрос с помощью рекордера Excel относительно просто и может быть выполнен за семь простых шагов .Если ваша основная цель — просто записывать и воспроизводить макросы Excel, вы готовы к работе!

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

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

Если вы продолжите изучать и практиковать Visual Basic для приложений, включая темы, которые я освещаю в других руководствах по Excel VBA в Power Spreadsheets, вы скоро сможете, среди прочего:

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

Книги, упомянутые в этом руководстве по макросам Excel для начинающих

  • Книги в Библиотека электронных таблиц Power .
  • Дарлингтон, Кейт (2004), VBA для Excel Made Simple. Берлингтон, Массачусетс: Сделанные простые книги.
  • Харви, Грег (2013). Многофункциональное устройство Excel 2013 для чайников. Хобокен, Нью-Джерси: John Wiley & Sons Inc.,
  • Джелен, Билл (2013). Excel 2013 в подробностях. Соединенные Штаты Америки: Que Publishing.
  • Джелен, Билл и Сирстад, Трейси (2013).Excel 2013 VBA и макросы. Соединенные Штаты Америки: Pearson Education, Inc.
  • Вокенбах, Джон (2013). Библия Excel 2013. Индианаполис, IN: John Wiley & Sons Inc.,
  • Вокенбах, Джон (2013). Программирование Excel VBA для чайников. Хобокен, Нью-Джерси: John Wiley & Sons Inc.,

Excel VBA Учебное пособие для начинающих: обучение за 3 дня

Подробности

Это руководство по Excel VBA для начинающих содержит подробные уроки для изучения основ VBA Excel и VBA.Это руководство по Visual Basic для приложений Excel охватывает все основы, а также расширенные концепции VBA для начинающих.

Что такое VBA?

VBA означает Visual Basic для приложений. Это комбинация языка программирования Microsoft Visual Basic, управляемого событиями, с приложениями Microsoft Office, такими как Microsoft Excel.

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

Вот что мы изучаем в курсе

Введение
Учебник Как писать макросы в Excel: пошаговое руководство для начинающих
Учебник VBA в Excel: что такое Visual Базовый для приложений, как использовать
Учебное пособие Переменные VBA, типы данных и объявление констант VBA в Excel
Учебное пособие Excel Массивы VBA: что такое, как использовать и типы массивов в VBA
Advanced Stuff
Учебное пособие Элементы управления VBA: элемент управления формой VBA и элементы управления ActiveX в Excel
Учебное пособие VBA Арифметические операторы Tutorial Строковые операторы VBA | Функции управления строками VBA
Учебное пособие Операторы сравнения VBA: не равно, меньше или равно
Учебное пособие Логические операторы VBA: И, ИЛИ, НЕ 9001 Подпрограмма Excel VBA: как вызвать Sub в VBA с примером
Учебное пособие Учебное пособие по функциям Excel VBA: возврат, вызов, примеры
Учебное пособие Excel VBA Range Object
85 Должен знать!

Зачем изучать Excel VBA?

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

Для чего используется VBA?

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

Что необходимо для изучения руководства по VBA Excel?

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

Что вы узнаете из этого руководства по Excel VBA?

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

VBA в Excel — макросы Easy Excel

VBA ( Visual Basic для приложений) — это язык программирования Excel и других программ Office.

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

2 MsgBox: MsgBox — это диалоговое окно в Excel VBA, которое вы можете использовать для информирования пользователей о вашей программе.

3 Объект Workbook и Worksheet: дополнительные сведения об объекте Workbook и Worksheet в Excel VBA.

4 Объект Range: Объект Range, представляющий ячейку (или ячейки) на листе, является наиболее важным объектом Excel VBA.

5 Переменные. В этой главе рассказывается, как объявлять, инициализировать и отображать переменную в Excel VBA.

6 Оператор If Then: используйте оператор If Then в Excel VBA для выполнения строк кода, если выполняется определенное условие.

7 Цикл: Цикл — один из самых мощных методов программирования. Цикл в Excel VBA позволяет перебирать диапазон ячеек с помощью всего нескольких строк кода.

8 Макро-ошибки. В этой главе рассказывается, как работать с макрокомандами в Excel.

9 Манипулирование строками. В этой главе вы найдете наиболее важные функции для управления строками в Excel VBA.

10 Дата и время: узнайте, как работать с датой и временем в Excel VBA.

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

12 Массив: массив — это группа переменных. В Excel VBA вы можете ссылаться на конкретную переменную (элемент) массива, используя имя массива и номер индекса.

13 Функция и подпрограмма: в Excel VBA функция может возвращать значение, а подпрограмма — нет.

14 Объект приложения: Мать всех объектов — это сам Excel. Мы называем это объектом Application. Объект приложения предоставляет доступ ко многим параметрам, связанным с Excel.

15 элементов управления ActiveX: узнайте, как создавать элементы управления ActiveX, такие как командные кнопки, текстовые поля, списки и т. Д.

16 Пользовательская форма: в этой главе рассказывается, как создать пользовательскую форму Excel VBA.

Создайте макрос за 4 простых шага

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

Но что, если я скажу вам, что есть способ все это автоматизировать? Что, если — одним нажатием кнопки — вы легко сможете выполнять эти рутинные задачи? Что ж, это еще одна область, в которой Excel действительно выделяется. Пришло время познакомиться с вашим новым лучшим другом: макросами.

Давайте перейдем к нашему руководству по макросам Excel для начинающих.

Расширьте возможности своей игры Excel

Загрузите нашу готовую к печати листовку с ярлыками для Excel.

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

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

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

Посмотрите это пояснительное видео, чтобы узнать больше о различиях между макросами и VBA из курса GoSkills Excel Macros & VBA.

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

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

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

Где получить доступ к макросам

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

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

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

Если вы используете Mac, нажмите «Excel» в верхнем левом углу экрана (рядом с логотипом Apple), а затем «Настройки». Оттуда нажмите «Просмотр», а затем установите флажок для вкладки «Разработчик».



Как создать макрос: пример из практики

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

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

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

Чтобы отличить, кто в этой огромной таблице Excel является членом правления (не прибегая к неверным номерам заказов и столов!), София и поставщик провизии согласились, что ей следует сделать следующее, чтобы явно отметить, кто за каждым столом является членом правления (так что это не пропускается установочной бригадой):

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

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

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

Давайте создадим этот макрос вместе с Софией.

1. Настройте макрос

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

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

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

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

2. Запишите макрос

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

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

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

3. Отредактируйте макрос

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

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

Для этого щелкните «Макросы» на вкладке «Разработчик». В этом меню макросов выберите «Шаг» (на ПК он будет называться «Шаг с заходом»).

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

В этом окне вы увидите две разные строки, которые начинаются со слова «Диапазон». Эти строки сообщают Excel, что вы хотите, чтобы эти правила форматирования применялись только к ячейкам в этом диапазоне, а София этого не хочет, поскольку она планирует использовать этот макрос для других ячеек.

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

4. Используйте свой макрос

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

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

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

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

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

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

Готовы стать мастером макросов?

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

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

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

Готовы стать сертифицированным ниндзя Excel?

Пройдите курс GoSkills по макросам и VBA сегодня же!

Начать бесплатную пробную версию Учебное пособие по

VBA — полное руководство для начинающих

Добро пожаловать в первую часть руководства Ultimate VBA для начинающих.

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

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

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

«Самое благородное удовольствие — это радость понимания». — Леонардо да Винчи

Результаты обучения для этого учебника VBA

Когда вы закончите это руководство по VBA, вы сможете:

  1. Создать модуль
  2. Создать подписку
  3. Поймите разницу между модулем и вспомогательным устройством
  4. Запустить код в суб
  5. Записать значение в ячейку
  6. Копировать значение из одной ячейки в другую
  7. Копировать значения из одного диапазона ячеек в другой
  8. Копирование значений между разностными листами
  9. Протестируйте вывод с помощью окна немедленного доступа
  10. Пишите код быстрее с помощью оператора With
  11. Создание и использование переменных
  12. Копировать из ячейки в переменную и наоборот

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

Шесть убийственных советов для этого руководства по VBA

  1. Практика, практика, практика — не пытайтесь учиться, читая. Попробуйте примеры и упражнения.
  2. Введите примеры кода вместо копирования и вставки — это поможет вам лучше понять код.
  3. Иметь четко определенную цель для изучения VBA. Один вы узнаете, когда дойдете до него.
  4. Не пугайтесь ошибок. Они помогают писать правильный код.
  5. Начните с создания простых макросов для своей работы.Затем создавайте более сложные, когда становитесь лучше.
  6. Не бойтесь прорабатывать каждое учебное пособие более одного раза. Чем больше вы это сделаете, тем глубже станут ваши знания.

Основные термины, используемые в этом руководстве по VBA

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

VBA : VBA — это язык программирования, который мы используем для создания макросов. Это сокращение от Visual Basic для приложений.

Строка кода : Это инструкция VBA. В общем, они выполняют одну задачу.

Подложка : Подложка состоит из одной или нескольких строк кода. Когда мы «запускаем» подпрограмму, VBA просматривает все строки кода и выполняет соответствующие действия. Макрос и подпрограмма по сути одно и то же.

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

Редактор VBA : Здесь мы пишем наш код. Нажатие Alt + F11 переключает между Excel и редактором Visual Basic. Если редактор Visual Basic в данный момент не открыт, нажатие Alt + F11 откроет его автоматически.

На снимке экрана ниже показаны основные части редактора Visual Basic:

Редактор Visual Basic

Совет для учебных занятий по VBA

Когда вы работаете над действиями в этом руководстве по VBA, рекомендуется закрыть все другие книги Excel.

Создание модуля

В Excel мы используем язык VBA для создания макросов. VBA означает Visual Basic для приложений.

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

В VBA мы создаем строки инструкций для обработки VBA. Мы помещаем строки кода в подпрограмму.Эти сабвуферы хранятся в модулях.

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

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

  1. Откройте новую пустую книгу в Excel.
  2. Откройте редактор Visual Basic (Alt + F11).
  3. Перейдите в окно «Проект — VBAProject » слева (Ctrl + R, если оно не отображается).
  4. Щелкните книгу правой кнопкой мыши и выберите Insert , а затем Module .
  5. Щелкните Module1 в окне Project — VBAProject .
  6. В окне Properties в левом нижнем углу (F4, если не отображается) измените имя модуля с module1 на MyFirstModule.

Модуль — это место, где вы размещаете свой код. Это просто контейнер для кода, и вы не используете его ни для чего другого.

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

Главное окно (или окно кода) — это место, где написан код. Чтобы просмотреть код любого модуля, включая рабочие листы, вы можете дважды щелкнуть элемент в окне Project — VBAProject .

Давайте сделаем это сейчас, чтобы вы могли ознакомиться с окном кода.

  1. Откройте новую книгу и создайте новый модуль, как в предыдущем упражнении.
  2. Дважды щелкните новый модуль в окне Project — VBAProject .
  3. Откроется окно кода для этого модуля. Вы увидите имя в строке заголовка Visual Basic.

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

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

Как использовать Subs

Строка кода — это инструкции, которые мы передаем VBA. Мы группируем строки кода в sub . Мы размещаем эти сабвуферы в модуле.

Мы создаем подпрограмму, чтобы VBA обрабатывал инструкции, которые мы ей даем. Для этого мы получаем VBA на Запускаем sub. Когда мы выбираем Run Sub из меню, VBA просматривает строки кода в подпрограмме и обрабатывает их по одной в том порядке, в котором они были размещены.

Давайте создадим подписку.Затем мы посмотрим на строки кода и то, что они делают.

  1. Возьмите модуль, который вы создали в последнем упражнении, или создайте новый.
  2. Выберите модуль, дважды щелкнув по нему в окне «Проект — VBAProject ». Убедитесь, что имя отображается в строке заголовка.
  3. Введите следующую строку в окно кода и нажмите Enter.
     Sub WriteValue
     

  4. VBA автоматически добавит вторую строку End Sub .Мы помещаем наш код между этими двумя строками.
  5. Между этими двумя строками введите строку
     Sheet1.Range ("A1") = 5
     

    Вы создали подписку! Возьмем его на тест-драйв.

  6. Щелкните суб, чтобы убедиться, что курсор находится там. Выберите в меню Run-> Run Sub / Userform (или нажмите F5).
    Примечание. Если вы не поместите курсор в подпрограмму, VBA отобразит список доступных для запуска подпрограмм.
  7. Откройте Excel (Alt + F11). Вы увидите значение 5 в ячейке A1 .
  8. Добавьте каждую из следующих строк в подпрограмму, запустите подпрограмму и проверьте результаты.

 Sheet1.Range ("B1") = "Какой-то текст"
Sheet1.Range ("C3: E5") = 5,55
Sheet1.Range ("F1") = Сейчас
 

Вы должны увидеть «Некоторый текст» в ячейках B1 , 5.55 в ячейках C3 до E5 и текущее время и дату в ячейке F1 .


Запись значений в ячейки

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

 Лист1.Диапазон ("A1") = 5
 

Мы также можем записать эту строку так:

 Sheet1.Range ("A1"). Значение = 5
 

Однако в большинстве случаев нам не нужно использовать Value , поскольку это свойство по умолчанию.

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

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

В строке говорится «левая ячейка \ переменная \ диапазон теперь будет равна результату элемента справа» .

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

 Sheet1.Range ("A1") = 5
 

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

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

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

Вот еще несколько примеров:

 'https://excelmacromastery.com/
Sub CopyValues ​​()
    
    'копирует значение из C2 в A1
    Sheet1.Range ("A1") = Sheet1.Range ("C2")
    
    'копирует значение из D6 в A2
    Лист1.Диапазон ("A2") = Sheet1.Range ("D6")
    
    'копирует значение из B1 на лист 2 в A3 на листе 1
    Sheet1.Range ("A3") = Sheet2.Range ("B1")
    
    'записывает результат D1 + D2 в A4
    Sheet1.Range ("A4") = Sheet2.Range ("D1") + Sheet2.Range ("D2")
    
Конец подписки
 

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

      1. Создайте новую книгу Excel.
      2. Вручную добавьте значения в ячейки на листе Sheet1 следующим образом: 20 в C1 и 80 в C2.
      3. Создайте новый субподрядчик с именем Act4 .
      4. Напишите код, чтобы поместить значение из C1 в ячейку A1.
      5. Введите код, чтобы поместить результат C2 + 50 в ячейку A2.
      6. Напишите код для умножения значений в ячейках C1 и C2. Поместите результаты в ячейку A3.
      7. Запустите код. Ячейки должны иметь значения A1 20 , A2 130 и A3 1600
      8. .

 'https://excelmacromastery.com/
Sub Act4 ()

    Sheet1.Range ("A1") = Sheet1.Range ("C1")
    Sheet1.Range ("A2") = Sheet1.Range ("C2") + 50
    Sheet1.Range ("A3") = Sheet1.Range ("C1") * Sheet1.Range ("C2")

Конец подписки
 

Ячейки в разных листах

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

В следующем упражнении «Учебник по VBA» мы собираемся писать между ячейками на разных листах.

      1. Добавить в книгу новый лист из последнего действия. Теперь у вас должно быть два рабочих листа с именами Sheet1 и Sheet2.
      2. Создайте новый дополнительный вызов Act5 .
      3. Добавьте код для копирования значения из C1 на Sheet1 в ячейку A1 на Sheet2 .
      4. Добавьте код, чтобы поместить результат из C1 + C2 на Sheet1 в ячейку A2 на Sheet2 .
      5. Добавьте код, чтобы поместить результат из C1 * C2 на Sheet1 в ячейку A3 на Sheet2 .
      6. Введите код в суб (F5). Ячейки на Лист2 должны иметь следующие значения:
        A1 20 , A2 100 и A3 1600

 Sub Act5 ()

    Лист2.Диапазон ("A1") = Sheet1.Range ("C1")
    Sheet2.Range ("A2") = Sheet1.Range ("C1") + Sheet1.Range ("C2")
    Sheet2.Range ("A3") = Sheet1.Range ("C1") * Sheet1.Range ("C2")

Конец подписки
 

Кодовое название рабочего листа

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

Мы делаем это, изменяя кодовое имя рабочего листа.Давайте посмотрим на кодовое имя и что это такое.

Когда вы посмотрите в окне Project — VBAProject новую книгу, вы увидите Sheet1 как внутри, так и вне скобок:

      • Sheet1 слева — это кодовое имя рабочего листа.
      • Sheet1 справа (в скобках) — это имя рабочего листа. Это имя, которое вы видите на вкладке в Excel.

Кодовое имя имеет следующие атрибуты

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

 Sheet1.Range ("A1")
 

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

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

Имя рабочего листа имеет следующие атрибуты

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

 ThisWorkbook.Worksheets ("Sheet1"). Range ("A1")
 

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

 ThisWorkbook.Worksheets ("Данные"). Диапазон ("A1")
 

Мы можем изменить только кодовое имя в окне Properties .
Мы можем изменить имя рабочего листа как на вкладке рабочего листа в Excel, так и в окне Properties .

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

      1. Откройте новую пустую книгу и перейдите в редактор Visual Basic.
      2. Щелкните Sheet1 в окне Project — VBAProject (Ctrl + R, если не отображается).
      3. Перейдите в окно Properties (F4, если не отображается).
      4. Измените кодовое имя рабочего листа на shReport .
      5. Создайте новый модуль и назовите его modAct6 .
      6. Добавьте следующую подпрограмму и запустите ее (F5)

 Sub UseCodename ()
    shReport.Диапазон ("A1") = 66
Конец подписки
 

      1. Затем добавьте следующую подпрограмму и запустите ее (F5)

 Sub UseWorksheetname ()
    ThisWorkbook.Worksheets ("Sheet1"). Range ("B2") = 55
Конец подписки
 

      1. Ячейка A1 должна теперь иметь значение 66 , а ячейка B2 должна иметь значение 55 .
      2. Измените имя рабочего листа в Excel на Report i.е. щелкните правой кнопкой мыши вкладку рабочего листа и переименуйте.
      3. Удалите содержимое ячеек и снова запустите код UseCodename . Код все равно должен работать правильно.
      4. Снова запустите подпрограмму UseWorksheetname . Вы получите ошибку «Индекс вне допустимого диапазона» . Эта критически звучащая ошибка просто означает, что в коллекции листов нет рабочего листа с именем Sheet1 .
      5. Измените код следующим образом и запустите его снова. Теперь код будет работать правильно.

 Sub UseWorksheetname ()
    ThisWorkbook.Worksheets ("Отчет"). Диапазон ("B2") = 55
Конец подписки
 


Ключевое слово With

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

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

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

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

 'https://excelmacromastery.com/
Sub WriteValues ​​()

    Sheet1.Range ("A1") = Sheet1.Range ("C1")
    Лист1.Диапазон ("A2") = Sheet1.Range ("C2") + 50
    Sheet1.Range ("A3") = Sheet1.Range ("C1") * Sheet1.Range ("C2")
    
Конец подписки
 

Давайте обновим этот код с помощью оператора With :

 'https://excelmacromastery.com/
Sub UsingWith ()

    С Sheet1
        .Range ("A1") = .Range ("C1")
        .Range ("A2") = .Range ("C2") + 50
        .Range ("A3") = .Range ("C1") * .Range ("C2")
    Конец с
        
Конец подписки
 

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

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

Мы обозначаем конец раздела с , используя строку End With .

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

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

Вы можете вставить строки кода справа, выбрав соответствующие строки кода и нажав клавишу Tab . Нажатие Shift и Tab приведет к переходу влево.

Табуляция (или отступ) полезна, потому что она делает наш код более читабельным.

      1. Перепишите следующий код, используя оператор With .Не забывайте делать отступ в коде.

 'https://excelmacromastery.com/
Дополнительное использование с ()

Sheet1.Range ("A1") = Sheet1.Range ("B3") * 6
Sheet1.Cells (2, 1) = Sheet1.Range ("C2") + 50
Sheet1.Range ("A3") = Sheet2.Range ("C3")


Конец подписки
 

 Дополнительное использование с ()

    С Sheet1
        .Range ("A1") = .Range ("B3") * 6
        .Cells (2, 1) = .Range ("C2") + 50
        .Диапазон ("A3") = Sheet2.Range ("C3")
    Конец с

Конец подписки
 

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

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

 Sheet2.Range ("A1: D4") = Sheet2.Range ("G2: I5"). Значение
 

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

 'исходные ячейки останутся пустыми, потому что значение отсутствует
Sheet2.Range ("A1: D4") = Sheet2.Range ("G2: I5")
 

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

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

      • Если целевой диапазон меньше, будет заполнена только ячейка в этом диапазоне.Это отличается от копирования / вставки, когда нам нужно указать только первую целевую ячейку, а Excel заполнит остальные.
      • Если диапазон назначения больше, дополнительные ячейки будут заполнены кодом # N / A .

      1. Создайте новую пустую книгу в Excel.
      2. Добавьте новый лист в эту книгу, чтобы было два листа — Sheet1 и Sheet2.
      3. Добавьте следующие данные в диапазон C2: E4 на Листе 1

      1. Запишите код для копирования данных с Листа 1 в диапазон B3: D5 на Листе 2.
      2. Введите код (F5).
      3. Очистите результаты, а затем измените диапазон назначения, чтобы он был меньше исходного диапазона. Запускаем еще раз и проверяем результаты.
      4. Очистите результаты, а затем измените диапазон назначения, чтобы он был больше исходного диапазона. Запускаем еще раз и проверяем результаты.

 Sub CopyMultipleCells ()

    Sheet2.Range ("B3: D5") = Sheet1.Range ("C2: E4"). Значение

Конец подписки
 

Транспонирование диапазона ячеек

Если вам нужно перенести дату (преобразовать из строки в столбец и наоборот), вы можете использовать WorksheetFunction Transpose .

Поместите значения от 1 до 4 в ячейки от A1 до A4. Следующий код запишет значения с E1 по h2

.
 Sheet1.Range ("E1: h2") = WorksheetFunction.Transpose (Sheet1.Range ("A1: A4"). Значение)
 

Следующий код будет считываться из E1: h2 в L1: L4

 Sheet1.Range ("L1: L4") = WorksheetFunction.Transpose (Sheet1.Range ("E1: h2"). Значение)
 

Вы заметите, что эти строки длинные. Мы можем разделить одну строку на несколько строк с помощью символа подчеркивания (_) e.грамм.

 Sheet1.Range ("E1: h2") = _
    WorksheetFunction.Transpose (Sheet1.Range ("A1: A4"). Значение)
 
 Sheet1.Range ("L1: L4") = _
    WorksheetFunction.Transpose (Sheet1.Range ("E1: h2"). Value)
 

Как использовать переменные

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

Так какие они и зачем они вам нужны?

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

Мы делаем три вещи с переменными

      1. Объявить (т.е. создать) переменную.
      2. Сохранить значение в переменной.
      3. Прочитать значение, хранящееся в переменной.

Типы переменных, которые мы используем, такие же, как типы данных, которые мы используем в Excel.

В таблице ниже показаны общие переменные. Есть и другие типы, но вы редко их будете использовать.Фактически, вы, вероятно, будете использовать Long и String для 90% ваших переменных.

Тип Детали
Логическое Может быть только истина или ложь
Валюта То же, что и десятичная, но только с 4 десятичными знаками
Дата Использовать для даты / времени
Двойное Использование десятичных знаков
Длинный Используйте для целых чисел
Строка Использовать для текста
Вариант VBA определит тип во время выполнения

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

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

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

Чтобы включить «Требовать декларацию переменных» , мы добавляем следующую строку в верхнюю часть нашего модуля

 Option Explicit
 

Чтобы VBA автоматически добавлял эту строку, выберите Инструменты-> Параметры в меню и отметьте Требовать объявление переменной .Каждый раз, когда вы создаете новый модуль, VBA будет добавлять эту строку в начало.

Объявить переменную просто. Мы используем следующий формат:

 Размер имя_переменной как тип
 

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

 Dim Total As Long
Тусклая точка как двойная
Тусклая цена как валюта
Затенять дату начала как дату
Уменьшить имя клиента как строку
Dim IsExpired как логическое
Тусклый элемент как вариант
 

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

 'https://excelmacromastery.com/
Sub DeclaringVars ()

    Dim Total As Long
    Итого = 1
        
    Тусклая цена как валюта
    Цена = 29,99
    
    Затенять дату начала как дату
    Дата начала = # 1/21/2018 #
    
    Уменьшить имя клиента как строку
    CustomerName = "Джон Смит"
    
Конец подписки
 

      1. Создайте новую подпрограмму и назовите ее UsingVariables .
      2. Объявите переменную для хранения счетчика и установите значение 5 .
      3. Объявите переменную для хранения цены билета и установите значение 99,99 .
      4. Объявите переменную для хранения страны и установите значение «Испания» .
      5. Объявите переменную для хранения даты окончания и установите значение 21 марта 2020 г. .
      6. Объявить переменную для хранения, если что-то завершено. Установите значение Ложь .

 Подложка с использованием переменных ()

    Тусклый счет до тех пор, пока
    count = 5
    
    Тусклая цена билета как валюта
    ticketprice = 99,99
    
    Тусклая страна как строка
    country = "Испания"
    
    Тусклая дата окончания как дата
    enddate = # 3/21/2020 #
    
    Dim завершается как логическое
    iscompleted = Ложь

Конец подписки
 

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

VBA имеет отличный инструмент, который позволяет нам проверять наш вывод.Этот инструмент — Немедленное окно. Используя Debug.Print , мы можем записывать значения, текст и результаты вычислений в Immediate Window.

Для просмотра этого окна выберите в меню View-> Immediate Window или нажмите Ctrl + G.

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

Мы можем использовать Immediate Window для записи наших переменных, чтобы проверить значения, которые они содержат.

Если мы обновим код из последнего действия, мы можем записать значения каждой переменной. Запустите приведенный ниже код и проверьте результат в непосредственном окне (Ctrl + G, если не отображается).

 'https://excelmacromastery.com/
Sub WritingToImmediate ()
    
    Тусклый счет до тех пор, пока
    count = 5
    Отладка. Количество отпечатков
    
    Тусклая цена билета как валюта
    ticketprice = 99,99
    Отладка. Распечатать стоимость билета
    
    Тусклая страна как строка
    country = "Испания"
    Отлаживать.Страна печати
    
    Тусклая дата окончания как дата
    enddate = # 3/21/2020 #
    Отладка. Печать конечной даты
    
    Dim завершается как логическое
    iscompleted = Ложь
    Отладка. Печать завершена
        
Конец подписки
 

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

Запись между переменными и ячейками

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

Вот несколько примеров

 'https://excelmacromastery.com/
ПодпеременныеCells ()

    Dim price1 как валюта, цена2 как валюта
    
    'значение места от A1 до price1
    price1 = Sheet1.Range ("A1")
    
    'значение места от цены1 до цены2
    цена2 = цена1
    
    'поставить значение из price2 в ячейку b2
    Sheet1.Range ("B2") = цена2
    
    'Печатать значения в окне "Немедленное"
    Debug.Print "Price 1 is" ​​& price1
    Отлаживать.Распечатать "Цена 2 есть" & price2

Конец подписки
 

      1. Создайте пустую книгу и рабочий лист, чтобы на нем было два листа: Sheet1 и Sheet2.
      2. Поместите текст «Нью-Йорк» в ячейку A1 на листе Sheet1. Поместите число 49 в ячейку C1 на Листе 2.
      3. Создайте подпрограмму, которая считывает значения в переменные из этих ячеек.
      4. Добавьте код для записи значений в окно Immediate.
 'https: // excelmacromastery.com /
Sub Act10 ()

    Тусклый город как струна
    city ​​= Sheet1.Range ("A1")
    
    Тусклое число по длине
    number = sheet2.Range ("C1")
    
    Debug.Print "Город есть" & город
    Debug.Print "Число равно" & число

Конец подписки
 

Ошибки несоответствия типа

Вам может быть интересно, что произойдет, если вы используете неправильный тип. Например, что произойдет, если вы прочитаете число 99.55 в тип переменной Long (целое число).

Что происходит, так это то, что VBA делает все возможное, чтобы преобразовать переменную. Поэтому, если мы присвоим число 99,55 типу Long , VBA преобразует его в целое число.

В приведенном ниже коде число округляется до 100.

 Dim i As Long
я = 99,55
 

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

 'https://excelmacromastery.com/
Дополнительное преобразование ()

    Тусклый результат Как долго
    
    результат = 26.77
    результат = "25"
    результат = 24,55555
    результат = "24.55"
    Dim c как валюта
    с = 23
    c = "23,334"
    результат = 24,55
    c = результат

Конец подписки
 

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

.
 'https://excelmacromastery.com/
Дополнительное преобразование ()

    Тусклый результат Как долго
    
    результат = "26.77A "
    
    Dim c как валюта
    c = "a34"

Конец подписки
 

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

      1. Объявите переменную типа Double с именем amount .
      2. Назначьте значение, которое вызывает ошибку несоответствия типа.
      3. Запустите код и убедитесь, что произошла ошибка.

Следующее — это один из возможных способов вызвать ошибку.

 Dim amount As Double
сумма = "а"
 


Конец задания для руководства по VBA

В этом руководстве мы рассмотрели много вещей. Итак, давайте соберем все это вместе в следующем задании

Учебное пособие Одно задание

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

Tutorial One Assignment Workbook

Откройте книгу заданий. Вы разместите свой код здесь

      1. Создайте модуль и назовите его Assignment1 .
      2. Создайте подгруппу с именем Top5Report , чтобы записать данные во все столбцы из первых 5 стран в раздел Top 5 на листе Report . Это диапазон, начинающийся с B3 на листе Report .Используйте кодовое имя для ссылки на рабочие листы.
      3. Создайте дополнительный вызов AreaReport , чтобы записать размер всех областей в раздел All the Areas рабочего листа Report . Это диапазон h4: h40. Используйте рабочий лист , имя , чтобы ссылаться на рабочие листы.
      4. Создайте подраздел под названием ImmediateReport , как показано ниже, считайте площадь и население из России в две переменные. Выведите численность населения на квадратный километр (население / площадь) в непосредственное окно.
      5. Создайте новый рабочий лист и назовите его областей . Установите кодовое имя shAreas . Создайте дочерний элемент с именем RowsToCols , который считывает все области в D2: D11 из рабочего листа стран и записывает их в диапазон A1: J1 на новом рабочем листе Области .

 'https://excelmacromastery.com/
Sub Top5Report ()

    shReport.Range ("B3: E7") = shCountries.Range ("B2: E6").Значение

Конец подписки

Sub AreaReport ()
    
    'Используйте подчеркивание, чтобы разделить на две строки
    ThisWorkbook.Worksheets ("Отчет"). Range ("h4: h40") = _
        ThisWorkbook.Worksheets ("Страны"). Диапазон ("D2: D29"). Значение

Конец подписки

Sub ImmediateReport ()

    Тусклая область в течение долгого времени, население в течение
    
    area = shCountries.Range ("D2")
    Население = shCountries.Range ("E2")
    
    Debug.Print "Население на квадратный километр составляет" и население / площадь

Конец подписки

Sub RowsToColls ()

    shAreas.Диапазон ("A1: J1"). Значение = _
        WorksheetFunction.Transpose (shCountries.Range ("D2: D11"). Value)
    
Конец подписки
 

Конец учебного задания

Следующая викторина основана на том, что мы рассмотрели в этом руководстве.

Учебное пособие по VBA Один тест

1. Каковы два основных различия между кодовым названием и именем рабочего листа?

          • На кодовое имя можно ссылаться непосредственно в коде.
          • Для ссылки на имя рабочего листа необходимо использовать коллекцию рабочих листов .

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

2.Какая последняя строка Sub?


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

3. Какой оператор сокращает наш код, позволяя нам писать объект один раз, но обращаться к нему несколько раз?


Заявление с заявлением

4. Что делает следующий код?

 Sheet1.Range ("D1") = результат
 


Записывает значение переменной результат в ячейку D1

5.Что делает следующий код?

 Sheet1.Range ("A1: C3") = Sheet2.Range ("F1: h4")
 


Задает пустой диапазон ячеек от A1 до C3. В коде отсутствует свойство Value . Чтобы скопировать значения, он должен выглядеть следующим образом
 Sheet1.Range ("A1: C3") = Sheet2.Range ("F1: h4"). Значение
 

6. Что дает следующий код?

 Dim amount As Long
сумма = 7

Отлаживать.Печать (5 + 6) * сумма
 

7. Что дает следующий код?

 Dim amt1 As Long, amt2 As Long

amt1 = "7,99"
Debug.Print amt1

amt2 = "14a"
Отладка.Печать amt2
 


Первый Debug.Print записывает значение 8 в окно Immediate. Строка am2 = приводит к ошибке несоответствия типа.

8. Если у нас есть 1,2 и 3 в ячейках A1, A2 и A3 соответственно, каков результат следующего кода?

 Лист1.Диапазон ("B1: B4") = Sheet1.Range ("A1: A3"). Значение
 


Код помещает 1 в ячейку B1, 2 в ячейку B2, 3 в ячейку B3 и # N / A в ячейку B4.

9. Что делает сочетание клавиш Alt + F11?

Открывает Visual Basic из Excel. Если редактор открыт, он просто переключается на него.

Если вы нажмете Alt + F11 в Visual Basic, он переключится в Excel.

10. В следующем коде мы объявляем переменную, но не присваиваем ей значение.что выводит оператор Debug.Print?

 Dim amt As Long

Debug.Print amt
 


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

Заключение первой части учебного пособия по VBA

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

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

      • Как получить последнюю строку или столбец с данными.
      • Невероятно эффективный отель CurrentRegion.
      • Как использовать гибкие строки и столбцы.
      • Когда использовать Диапазон и когда использовать Ячейки .
      • и многое другое…

.

Обратите внимание: , что Учебники 2–4 могут быть приобретены участниками моего списка рассылки по специальной сниженной цене.

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

Что дальше?

Планируете создать приложение VBA или управлять им? Узнайте, как с нуля создать 10 приложений Excel VBA.

6 лучших книг по программированию в Excel, VBA

Термин VBA означает Visual Basic для приложений, язык программирования MS Excel.Он предлагает удивительную функцию для создания пользовательского интерфейса, который работает как программа рисования, потому что он дает вам функцию перетаскивания и выравнивания для управления графическим пользовательским интерфейсом. VBA улучшает функциональность Excel, поскольку пользователи получают возможность создавать и формировать свои таблицы Excel соответствующим образом. Следовательно, если вы изучите программирование на VBA, вы сможете вывести свои методы работы с электронными таблицами на новый уровень. Существуют различные книги по программированию Excel VBA, но хорошо иметь лучшие книги, чтобы легко получить отличное обучение работе с Excel.Итак, в этой статье вы получите подробную информацию о 6 лучших книгах по программированию Excel VBA.

  1. Excel 2016 Power Programming с VBA
  2. Excel 2013 Power Programming с VBA
  3. Microsoft Excel 2019 VBA и макросы
  4. Программирование Excel VBA для чайников
  5. Программирование Excel VBA для начинающих
  6. Макросы Excel: полное руководство для начинающих

1. Программирование Power в Excel 2016 с помощью VBA

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

Особенности программирования Power в Excel 2016 с помощью VBA

  • Он состоит из передовых методов VBA.
  • Вы получаете онлайн-примеры и ресурсы.
  • Содержит полностью обновленное содержимое для Excel 2016
  • Он предлагает множество советов и рекомендаций.

2. Программирование питания в Excel 2013 с помощью VBA

Excel 2013 Power Programming with VBA — одна из лучших книг по программированию Excel VBA, потому что она лучше всего подходит как для начального, так и для продвинутого уровня обучения, и написана Джоном Уокенбахом.Эта книга предлагает все основные советы, методы и инструменты, которые помогут вам улучшить свои навыки программирования в Excel. Эта книга является самой высоко оцененной книгой по Excel на Amazon, и в ней 1100 страниц, так что вы получите полное обучение Excel от начала до конца. Эта книга содержит подробный справочник по Visual Basic, который подходит для MS Excel 2013. Он включает различные процедуры для создания пользовательских форм для сложных приложений, таких как диаграммы и сводные таблицы, с помощью программирования на VBA.

Особенности программирования Power в Excel 2013 с VBA

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

3. Microsoft Excel 2019 VBA и макросы

Microsoft Excel 2019 VBA and Macros — отличная книга, которая потрясающе объясняет работу VBA с Excel, потому что она дает полную информацию для создания базового уровня обучения с надлежащим обучением Excel.В этой книге приведены различные примеры, которые помогут вам понять различные макросы для создания автоматических отчетов. В эту книгу также включены некоторые основные темы, такие как сводные таблицы, программирование событий, многомерные массивы, тележки, пользовательские формы, веб-запросы и т. Д. Авторы этой книги изменили ее для всех обновленных программ Excel, которые будут давать пошаговые инструкции. процедуры и методы программирования на VBA.

Особенности Microsoft Excel 2019 VBA и макросов

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

4. Программирование Excel VBA для чайников

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

Особенности программирования Excel VBA для чайников

  • Вы можете научиться использовать VBA и функции рабочего листа
  • Вы можете изучить различные методы обработки ошибки
  • Эта книга — соотношение цены и качества
  • Содержит основную информацию о программировании на VBA.
  • Эта книга оптимизирована для MS Excel 2016

5.Программирование Excel VBA для начинающих

Excel Программирование VBA для начинающих полезно для начинающих, чтобы понять макросы VBA с MS Excel, потому что он описывает все о Visual Basic в MS Excel 2013. Вы также можете научиться писать формулы макросов, а затем анализировать данные в Microsoft Excel. Эта книга включает в себя различные важные и базовые темы, такие как создание диаграмм, пользовательские формы, принятие решений, массивы, операторы VBA, обработка ошибок VBA и т. Д. Если вы прочитаете эту книгу, вы легко сможете изучить программирование на VBA, потому что в ней есть пошаговые инструкции.

Особенности программирования Excel VBA для начинающих: Excel VBA 2013

  • Вы можете изучить Visual Basic
  • Вы можете изучать функции, массивы и операторы
  • В нем есть полное руководство по созданию пользовательских форм
  • Вы можете научиться обрабатывать ошибки в VBA.

6. Макросы Excel: полное руководство для начинающих

Макросы

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

Возможности макросов Excel: полное руководство для начинающих

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

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован.