Чтобы создать личную книгу, сначала нужно создать макрос и сохранить его в личной книге макроса. Перед началом работы убедитесь, что вкладка Разработчик доступна на ленте в Excel. Дополнительные сведения см. в этой вкладке.
Создание и обновление книги «Личные макросы»
-
На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.
-
В диалоговом окне Запись макроса введите содержательное имя макроса в поле Имя макроса. Не используйте пробелы в имени.
-
В поле Сохранить в выберитеЛичная книга макроса.
-
Нажмите кнопку ОК.
-
Выполните действия, которые нужно записать.
-
На вкладке Разработчик в группе Код нажмите кнопку Остановить запись.
-
Закроем книгу.
Отобразится сообщение с предложением сохранить изменения, внесенные в личную книгу макросов.
-
Нажмите кнопку Сохранить, чтобы сохранить книгу.
Каждый раз при создании нового макроса и сохранении его в личную книгу, а также при обновлении макроса в книге предлагается сохранить личную книгу.
Общий доступ к макросам
Если вы хотите скопировать макрос из личной книги в другую книгу или наоборот, это можно сделать в редакторе Visual Basic(VBE). Вы можете запустить редактор Visual Basic в Excel, нажав ALT+F11. Дополнительные сведения о копировании макросов из одной книги в другую см. в статье Копирование модуля макроса в другую книгу.
Если вы хотите поделиться файлом Personal.xlsB с другими людьми, вы можете скопировать его в папку XLSTART на других компьютерах. В Windows 10, Windows 7 и Windows Vista эта книга будет сохранена в папке C:Usersимя пользователяAppDataLocalMicrosoftExcelXLStart. В Microsoft Windows XP эта книга сохранена в папке C:Documents and Параметрыимя пользователяApplication DataMicrosoftExcelXLStart. Книги в папке XLStart открываются автоматически при Excel, а все коды, сохраненные в личной книге макроса, будут перечислены в диалоговом окну Макрос.
Если вы хотите поделиться одним или несколькими макросами, вы можете отправить им книгу, содержаную их по электронной почте. Вы также можете сделать книгу доступной на общем сетевом диске или в SharePoint Services библиотеке.
Чтобы создать личную книгу, сначала нужно создать макрос и сохранить его в личной книге макроса. Перед началом работы убедитесь, что вкладка Разработчик доступна на ленте в Excel. Для этого:
В меню Excel выберите пункт Параметры… > ленты & панели инструментов. В категории Настройка ленты в списке Основные вкладки выберите разработчик и нажмите кнопку Сохранить.
Создание и обновление книги «Личные макросы»
Чтобы создать личную книгу, сначала нужно создать макрос и сохранить его в личной книге макроса.
-
На вкладке Разработчик нажмите кнопку Запись макроса.
-
В диалоговом окне Запись макроса введите содержательное имя макроса в поле Имя макроса. Не используйте пробелы в имени.
-
В поле Сохранить в выберитеЛичная книга макроса.
-
Нажмите кнопку ОК.
-
Выполните действия, которые нужно записать.
-
На вкладке Разработчик щелкните Остановить запись.
-
Сохраните изменения, закроем книгу и, наконец, закроем Excel.
Отобразится сообщение с предложением сохранить изменения, внесенные в личную книгу макросов.
-
Нажмите кнопку Сохранить, чтобы сохранить книгу.
Каждый раз, когда вы создаете новый макрос и сохраняете его в личной книге или обновляете макрос, который уже есть в нем, вам будет предложено сохранить личную книгу.
Общий доступ к макросам
Если вы хотите скопировать макрос из личной книги в другую книгу или наоборот, это можно сделать в редакторе Visual Basic(VBE). Чтобы запустить редактор Visual Basic в Excel, щелкните Visual Basic на вкладке Разработчик. Дополнительные сведения о копировании макросов из одной книги в другую см. в статье Копирование модуля макроса в другую книгу.
Если вы хотите поделиться файлом Personal.xlsB с другими людьми, вы можете скопировать его в папку Excel на других компьютерах. Эта папка для Mac находится в домашней папке на сайте ~/Library/Containers/com.microsoft. Excel/Data/Library/Application Support/Microsoft/Roaming/Excel/.
Если вы хотите поделиться одним или несколькими макросами, вы можете отправить им книгу, содержаную их по электронной почте. Вы также можете сделать книгу доступной на общем сетевом диске или в SharePoint Services библиотеке.
Прежде чем начать работать с макросами, то есть, записывать, удалять, выполнять (запускать), изменять (редактировать), копировать макросы VBA, найдем пункты меню и панели, в которых сосредоточены все необходимые для выполнения этих действий инструменты. Расположение инструментов для работы с макросами зависит от версии пакета MS Office. Рассмотрим расположение интересующих нас пунктов меню и панелей на примере двух приложений Word и Excel.
Microsoft Office 2003
Инструменты для работы с макросами в этих приложениях имеют одинаковое расположение и находятся в меню Сервис/Макрос
Здесь расположены пять пунктов меню: «Макросы», «Начать запись», «Безопасность», «Редактор Visual Basic» и «Редактор сценариев».
Выбор пункта меню «Макросы» выдает окно со списком уже существующих макросов и позволяет совершать такие общие действия как выполнение (запуск), отладку, изменение, создание и удаление макросов. Здесь стоит заметить, что макросы могут храниться в разных местах. Основное хранилище макросов в Excel – это личная книга макросов, файл с названием Personal.xls, основное хранилище макросов в Word – это общий шаблон, файл с названием Normal.dot, кроме этого макросы могут храниться и в обычных файлах этих приложений – рабочих книгах и документах соответственно.
Выбор пункта меню «Начать запись», как уже понятно из названия, запускает макрорекордер (рекордер), который записывает действия пользователя и автоматически переводит их в программный код языка VBA (Visual Basic for Application).
Пункт меню «Безопасность» позволяет изменять уровень безопасности, позднее мы к этому пункту еще вернемся.
Ну и выбор пункта меню «Редактор Visual Basic» запускает собственно говоря этот упомянутый редактор, его также называют Visual Basic Editor или сокращенно VBE.
Microsoft Office 2007
В приложениях Word и Excel этой версии инструменты для работы с макросами расположены на вкладке «Вид» в разделе «Макросы», в правой части экрана. В то же время существует специальная вкладка на ленте с названием «Разработчик», с более полным набором инструментов которая по умолчанию отключена. Для того чтобы отобразить эту вкладку, необходимо нажать на кнопку «Office» и выбрать «Параметры Word» либо «Параметры Excel» в зависимости от приложения
После этого выбираем раздел «Основные параметры Word» либо «Основные параметры Excel» и подключаем опцию «Показывать вкладку разработчик на ленте».
Кроме инструментов для работы с макросами на вкладке содержатся инструменты для работы с формами и XML-файлами (эту вкладку видно на скриншоте выше). Основные функции, закрепленные за кнопками вкладки «Разработчик», аналогичны тем, которые описаны для версии MS Office 2003. К остальным будем возвращаться по мере необходимости.
Microsoft Office 2010
В приложениях этой версии расположение инструментов такое же как и в версии 2007. Вкладка «Вид», раздел «Макросы», либо вкладка «Разработчик». Для того чтобы отобразить ее на ленте, сделаем следующее:
1. На вкладке «Файл» выберем «Параметры» чтобы открыть диалоговое окно «Параметры Excel» либо «Параметры Word», в зависимости от приложения
2. Щелкнем «Настройка ленты» в левой части диалогового окна
3. Поставим флажок перед надписью «Разработчик»
Другие материалы по теме:
Содержание
- 1 Как сохранить макрос в личную книгу макросов
- 1.1 Как создать Личную Книгу Макросов
- 1.2 Как использовать Личную Книгу Макросов
- 1.3 Где хранится Личная Книга Макросов
- 1.4 P.S.
- 1.5 Ссылки по теме
Большинство пользователей Excel знают, как создать и использовать макрос внутри файла одной рабочей книги. В случаи, когда необходимо использовать тот же макрос в других файлах рабочих книг, тогда можно сохранить его в личной книге макросов. У нее всегда одно название – Personal.xlsb. Она всегда открывается при запуске программы Excel, только скрыто. Данная книга не является доступной по умолчанию в Excel, поэтому ее нужно сначала подключить.
Как сохранить макрос в личную книгу макросов
Чтобы создать и схоронить код в личной книге макросов:
- Выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Запись макроса».
- В появившемся диалоговом окне «Запись макроса», из выпадающего списка «Сохранить в:» выберите опцию «Личная книга макросов». И нажмите на кнопку OK.
- Теперь выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Остановить запись».
- Откройте редактор Visual Basic: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11. В окне «Project-VBAProject», в дереве проектов появиться доступная еще одна книга Personal.xlsb. Кликните на «плюсик» слева на против этой книги, чтобы раскрыть проект книги Personal.xlsb. А после двойным щелчком отройте ее Module1.
- В результате откроется окно кода модуля с зарегистрированным макросом. Удалите его код и введите код своего макроса. Выберите инструмент в редакторе макросов: «File»-«Save Personal.xlsb», а потом закройте редактор Visual Basic.
Теперь у вас подключена скрытая книга для хранения макросов, к которым можно получить доступ из любой другой рабочей книги. Личная книга макросов где находится находиться в папке автозагрузки файлов Excel – XLSTART: C:Documents and SettingsUser_NameAppDataRoamingMicrosoftExcelXLSTARTPersonal.xlsb
Примечание. XLSTART – это папка для автозагрузки файлов вместе с запуском программы Excel. Если сохранить файл в данную папку, то он будет открываться вместе с программой Excel. Для версий старше 2007 путь к папке автозагрузки будет следующим: C:Program FilesMicrosoft OfficeOffice12Xlstart.
Если вам нужно записать в нее новый макрос просто откройте редактор, а потом откройте модуль книги Personal.xlsb. Уже записанные в нее макросы удалять не нужно. Они не будут между собой конфликтовать если соблюдать одно простое правило – в одном модуле нельзя хранить макросы с одинаковыми именами.
Если вы еще не знакомы с макросами в Excel, то я вам даже немного завидую. Ощущение всемогущества и осознание того, что ваш Microsoft Excel можно прокачивать почти до бесконечности, которые придут к вам после знакомства с макросами — приятные чувства.
Однако, эта статья для тех, кто уже «познал мощь» и начал использовать макросы (чужие или написанные самостоятельно — не важно) в своей повседневной работе.
Макрос — это код (несколько строк) на языке Visual Basic, которые заставляют Excel сделать то, что вам нужно: обработать данные, сформировать отчет, скопипастить много однообразных таблиц и т.п. Вопрос — где эти несколько строк кода хранить? Ведь от того, где макрос хранится будет потом зависеть где он сможет (или не сможет) работать.
Если макрос решает небольшую локальную проблему в отдельно взятом файле (например обрабатывает внесенные в конкретный отчет данные особым образом), то логично хранить код внутри этого же файла. Без вопросов.
А если макрос должен быть относительно универсален и нужен в любой книге Excel — как, например, макрос для конвертирования формул в значения? Не копировать же его код на Visual Basic каждый раз в каждую книгу? Кроме того, рано или поздно, почти любой пользователь приходит к мысли, что неплохо было бы сложить все макросы в одну коробку, т.е. иметь их всегда под рукой. И может быть даже запускать не вручную, а сочетаниями клавиш? И вот тут может здорово помочь Личная Книга Макросов (Personal Macro Workbook).
Как создать Личную Книгу Макросов
На самом деле, Личная Книга Макросов (ЛКМ) — это обычный файл Excel в формате двоичной книги (Personal.xlsb), который автоматически в скрытом режиме открывается одновременно с Microsoft Excel. Т.е. когда вы просто запускаете Excel или открываете любой файл с диска, на самом деле открываются два файла — ваш и Personal.xlsb, но второго мы не видим. Таким образом все макросы, которые хранятся в ЛКМ оказываются доступы для запуска в любой момент, пока открыт Excel.
Если вы еще ни разу не пользовались ЛКМ, то изначально файл Personal.xlsb не существует. Самый легкий способ его создать — это записать рекордером какой-нибудь ненужный бессмысленный макрос, но указать в качестве места для его хранения Личную Книгу — тогда Excel будет вынужден автоматически ее для вас создать. Для этого:
- Откройте вкладку Разработчик (Developer). Если вкладки Разработчик не видно, то ее можно включить в настройках через Файл — Параметры — Настройка ленты (Home — Options — Customize the Ribbon).
- На вкладке Разработчик нажмите кнопку Запись макроса (Record Macro). В открывшемся окне выберите Личную книгу макросов (Personal Macro Workbook) как место для хранения записанного кода и нажмите OK:
- Остановите запись кнопкой Остановить запись (Stop Recording) на вкладке Разработчик (Developer)
Проверить результат можно, нажав на кнопку Visual Basic там же на вкладке Разработчик — в открывшемся окне редактора в левом верхнем углу на панели Project — VBA Project должен появиться наш файл PERSONAL.XLSB. Его ветку которого можно развернуть плюсиком слева, добравшись до Module1, где и хранится код только что записанного нами бессмысленного макроса:
Поздравляю, вы только что создали себе Личную Книгу Макросов! Только не забудьте нажать на кнопку сохранения с дискеткой в левом верхнем углу на панели инструментов.
Как использовать Личную Книгу Макросов
Дальше все просто. Любой нужный вам макрос (т.е. кусок кода, начинающийся на Sub и заканчивающийся End Sub) можно смело копировать и вставлять либо в Module1, либо в отдельный модуль, добавив его предварительно через меню Insert — Module. Хранить все макросы в одном модуле или раскладывать по разным — исключительно вопрос вкуса. Выглядеть это должно примерно так:
Запустить добавленный макрос можно в диалоговом окне, вызываемом с помощью кнопки Макросы (Macros) на вкладке Разработчик:
В этом же окне, нажав кнопку Параметры (Options), можно задать сочетание клавиш для быстрого запуска макроса с клавиатуры. Будьте внимательны: сочетания клавиш для макросов различают раскладку (русская или английская) и регистр.
Кроме обычных макросов-процедур в Личной Книге можно хранить и пользовательские макро-функции (UDF = User Defined Function). В отличие от процедур, код функций начинаются с оператора Function или Public Function, а заканчиваются на End Function:
Код необходимо аналогичным образом скопировать в любой модуль книги PERSONAL.XLSB и затем можно будет вызвать функцию обычным образом, как любую стандарную функцию Excel, нажав кнопку fx в строке формул и выбрав функцию в окне Мастера Функций в категории Определенные пользователем (User Defined):
Примеры таких функций можно в больших количествах найти в интернете или здесь же на сайте (сумма прописью, приблизительный текстовый поиск, ВПР 2.0, конвертация кириллицы в транслит и т.п.)
Где хранится Личная Книга Макросов
Если вы будете использовать Личную Книгу Макросов, то рано или поздно у вас возникнет желание:
- поделиться своими накопленными макросами с другими пользователями
- скопировать и перенести Личную Книгу на другой компьютер
- сделать ее резервную копию
Для этого нужно будет найти файл PERSONAL.XLSB на диске вашего компьютера. По умолчанию, этот файл хранится в специальной папке автозапуска Excel, которая называется XLSTART. Так что все, что нужно — это добраться до этой папки на нашем ПК. И вот тут возникает небольшая сложность, потому что местоположение этой папки зависит от версии Windows и Office и может различаться. Обычно это один из следующих вариантов:
- C:Program FilesMicrosoft OfficeOffice12XLSTART
- C:Documents and SettingsComputerApplication DataMicrosoftExcelXLSTART
- C:Usersимя-вашей-учетной-записиAppDataRoamingMicrosoftExcelXLSTART
Как вариант, можно спросить о положении этой папки сам Excel с помощью VBA. Для этого в редакторе Visual Basic (кнопка Visual Basic на вкладке Разработчик) нужно открыть окно Immediate сочетанием клавиш Ctrl+G, ввести туда команду ? Application.StartupPath и нажать на Enter:
Полученный путь можно скопировать и вставить в верхнюю строку окна Проводника в Windows и нажать Enter — и мы увидим папку с нашим файлом Личной Книги Макросов:
P.S.
И несколько практических нюансов вдогон:
- при использовании Личной Книги Макросов Excel будет запускаться чуть медленнее, особенно на слабых ПК
- стоит периодически очищать Личную Книгу от информационного мусора, старых и ненужных макросов и т.п.
- у корпоративных пользователей бывают иногда сложности с использованием Личной Книги, т.к. это файл в системной скрытой папке
Ссылки по теме
- Что такое макросы, как их использовать в работе
- Полезности для VBA-программиста
- Тренинг «Программирование макросов на VBA в Microsoft Excel»
ГЛАВА 1
1.1. Зачем программировать в Microsoft Office
Ответ на этот вопрос прост: чтобы не делать лишней работы. Программирование в Office — это, прежде всего, уменьшение количества повторяющихся действий (и ручной работы, которая для этого требуется). Вот примеры некоторых типичных ситуаций, когда использование программирования просто напрашивается:
вам с определенной периодичностью приходится изготавливать документы, очень похожие друг на друга: приказы, распоряжения в бухгалтерию, договоры, отчеты и т. п. Часто информацию можно взять из базы данных, тогда использование программирования может дать очень большой выигрыш во времени. Иногда данные приходится вводить вручную, но и тогда автоматизация дает выигрыш во времени и в снижении количества ошибок;
разновидность такой же ситуации: одни и те же данные нужно использовать несколько раз. Например, вы заключаете договор с заказчиком. Одни и те же данные (наименование, адрес, расчетный счет, номер договора, дата заключения, сумма и т. п.) могут потребоваться во многих документах: самом договоре, счете, счете-фактуре, акте сдачи выполненных работ и т. д. Логично один раз ввести эту информацию (скорее всего, в базу данных), а затем автоматически формировать (например, в Word) требуемые документы;
когда нужно сделать так, чтобы вводимые пользователем данные автоматически проверялись. Вероятность ошибки при ручном вводе данных зависит от многих факторов, но, согласно результатам некоторых исследо-
Основыпрограммирования в Microsoft Office |
13 |
ваний, она в среднем составляет около 2%. «Вылавливать» потом такие ошибки в уже введенных данных — очень тяжелый труд, поэтому лучше сразу сделать так, чтобы они не возникали.
В общем, любое действие, которое вам приходится повторять несколько раз, — это возможный кандидат на автоматизацию. Например, занесение сотен контактов в Outlook, или замена ресурса в десятках проектов Project, или анализ информации из базы данных за разные периоды в таблице Excel — это те ситуации, когда знание объектных моделей приложений Office спасет вас от нескольких часов или даже дней скучного труда.
Конечно, есть еще практиканты и аналогичный бесплатный трудовой ресурс, но хочется ли вам потом заниматься еще и поиском ошибок за ними? Кроме того, программирование несет и другие преимущества для сотрудника, который использует его в работе:
повышается авторитет сотрудника в глазах руководства и других коллег;
если программы этого сотрудника активно используются на предприятии (им самим или другими работниками), то этим самым он защищает себя от сокращений, снижения зарплаты и т. п., ведь поддерживать и изменять программы в случае необходимости будет некому.
1.2. Что такое язык VBA
Поскольку эта книга предназначена для обычных пользователей, то без объяснения этого вопроса не обойтись. Формальное определение такое.
VBA (Visual Basic for Applications) — это диалект языка Visual Basic, расши-
ряющий его возможности и предназначенный для работы с приложениями Microsoft Office и другими приложениями от Microsoft и третьих фирм.
В принципе, при программировании в Office можно вполне обойтись и без языка VBA. Подойдет любой COM-совместимый язык, например: обычный
Visual Basic, VBScript, Java, JScript, C++, Delphi и т. п. Можно использовать и
.NET-совместимые языки программирования: VB.NET, C# и т. п. Вам будут доступны все возможности объектных моделей приложений Office. Например, если сохранить следующий код в файле с расширением vbs и запустить его на выполнение, то будет запущен Word, в котором откроется новый документ и будет впечатан текст:
Dim oWord
Set oWord = CreateObject(«Word.Application») oWord.Visible = true
oWord.Documents.Add
oWord.Selection.TypeText («Привет от VBScript»)
Тем не менее, VBA — это обычно самый удобный язык для работы с приложениями Office. Главная причина проста — язык VBA встроен в приложения Office, и код на языке VBA можно хранить внутри документов приложений Office: в документах Word, книгах Excel, презентациях PowerPoint и т. п. Конечно же, этот код можно запускать из документов на выполнение, поскольку среда выполнения кода VBA (на программистском сленге — хост) встроена внутрь этих приложений.
В настоящее время VBA встроен:
во все главные приложения Microsoft Office — Word, Excel, Access, PowerPoint, Outlook, FrontPage, InfoPath;
вдругие приложения Microsoft, такие как Visio и Project;
вболее 100 приложений третьих фирм, например, в CorelDRAW и CorelWordPerfect Office 2000, AutoCAD и т. п.
Но есть также и множество других преимуществ.
VBA — универсальный язык. Освоив его, вы не только получите ключ ко всем возможностям приложений Office и других, перечисленных ранее, но и будете готовы к тому, чтобы:
•создавать полноценные приложения на Visual Basic (поскольку эти языки — близкие родственники);
•использовать все возможности языка VBScript (это вообще «урезанный» VBA). В результате в вашем распоряжении будут универсальные средства для создания скриптов администрирования Windows, Web-
страниц (VBScript в Internet Explorer), Web-приложений ASP, для при-
менения в пакетах DTS и заданиях на SQL Server, а также для создания серверных скриптов Exchange Server и многое-многое другое.
VBA изначально был ориентирован на пользователей, а не на профессиональных программистов (хотя профессионалы пользуются им очень активно), поэтому создавать программы на нем можно быстро и легко. Кроме того, в Office встроены мощные средства, облегчающие работу пользователя: подсказки по объектам и по синтаксису, макрорекордер и т. п.
При создании приложений на VBA вам, скорее всего, не придется заботиться об установке и настройке специальной среды программирования и наличии нужных библиотек на компьютере пользователя — Microsoft Office есть практически на любом компьютере.
Несмотря на то, что часто приложения VBA выполняются медленнее, чем бы вам хотелось, они нересурсоемки и очень хорошо работают, например, на сервере терминалов. Но, как правило, для программ на VBA особых требований на производительность и не ставят: для написания игр, драй-
Основыпрограммирования в Microsoft Office |
15 |
веров, серверных продуктов он не используется. По моему опыту, возникающие проблемы с производительностью VBA-приложений — это чаще всего не проблемы VBA, а проблемы баз данных, к которым они обращаются. Если проблемы действительно в VBA (обычно тогда, когда вам требуется сложная математика), то всегда есть возможность написать важный код на C++ и обращаться к нему как к обычной библиотеке DLL или встраиваемому приложению (Add-In) для Word, Excel, Access и т. п.
Программы на VBA по умолчанию не компилируются, поэтому вносить в них исправления очень удобно. Не нужно разыскивать исходные коды и перекомпилировать программы.
В среде программистов-профессионалов считается, что быстрее всего научиться создавать профессиональные приложения можно именно при помощи VBA и объектов приложений Office. Другие языки программирования (C++, Java, Delphi) придется осваивать намного дольше, а их возможности во многом избыточны для большинства повседневных задач, которые встречаются на любом предприятии. Кроме того, использование возможностей объектов Office (графического интерфейса, средств работы с текстом, математических функций и т. п.) позволит резко снизить трудоемкость при создании приложений.
1.3. Макрорекордер: быстрое создание макросов
В большинство программ Microsoft Office (исключая Access и FrontPage)
встроено замечательное средство, которое позволит вам создавать программы, вообще ничего не зная о программировании. Это средство называется макрорекордером.
Макрорекордер, как понятно из его названия, — это средство для записи макросов. Макрос — всего лишь еще одно название для VBA-программы, а макрорекордер — средство для его автоматического создания.
Приложения Microsoft Office 2003 по умолчанию настроены так, что не позволяют запускать макросы. Поэтому перед тем, как приступать к созданию макросов,
в меню Сервис | Макрос | Безопасность переставьте переключатель Уровень безопасности в положение Средняя или Низкая, а потом закройте и снова откройте данное приложение. Это потребуется сделать только один раз в начале работы.
Принцип работы макрорекордера больше всего похож на принцип работы магнитофона: мы нажимаем на кнопку — начинается запись тех действий,
которые мы выполняем. Мы нажимаем на вторую кнопку — запись останавливается, и мы можем ее проиграть (т. е. повторно выполнить ту же последовательность действий).
Конечно, макрорекордер позволяет написать только самые простые VBAпрограммы. Однако и он может принести много пользы. Например, можно «положить» на горячие клавиши те слова, словосочетания, варианты оформления и т. п., которые вам часто приходится вводить (должность, название фирмы, продукт, ФИО директора и ответственного исполнителя и т. д.), этим вы сэкономите много времени.
Как показывает опыт, подавляющее большинство обычных пользователей и не подозревает о существовании макрорекордера, несмотря на то, что его применение позволило бы сэкономить им массу времени.
Перед созданием макроса в макрорекордере:
необходимо очень тщательно спланировать макрос, хорошо продумав, что вы будете делать и в какой последовательности. Если есть возможность, определите подготовительные действия. Например, если нужно вставить текущую дату в начало документа, может быть, имеет смысл первой командой макроса сделать переход на начало документа (<Ctrl>+<Home>);
посмотрите, нет ли готовой команды, которую можно сразу назначить клавише или кнопке на панели инструментов без создания макроса. Сделать это можно при помощи меню Сервис | Настройка. С вкладки Команды можно перетащить нужную команду на требуемую панель управления, и, нажав на этой же вкладке кнопку Клавиатура, в окне Настройка клавиатурыназначить длякоманды нужнуюкомбинацию клавиш;
если вы собираетесь при помощи макроса менять оформление текста, то правильнее вначале создать новый стиль с вашим оформлением, а потом уже применить этот стиль к тексту. В этом случае опять-таки можно обойтись без макроса, просто назначив стиль комбинации клавиш. Делается это при помощи того же диалогового окна Настройка клавиатуры, как и в предыдущем случае.
Чтобы создать макрос в макрорекордере (для тех программ Microsoft Office, для которых это средство предусмотрено, например, Word, Excel, PowerPoint, Project):
1.В меню Сервис | Макрос выберите команду Начать запись. В открывшемся окне Запись макроса (рис. 1.1) вам потребуется определить:
•Имя макроса. Правило такое: имя не должно начинаться с цифры, не должно содержать пробелы и символы пунктуации. Максимальная длина в Excel — 64 символа, в Word — 80 символов. Можно писать порусски;
Основыпрограммирования в Microsoft Office |
17 |
•будет ли макрос назначен кнопке на панели управления или комбинации клавиш. Выполнить это, а также задать другие средства для вызова макроса можно и потом — об этом будет рассказано в следующем разделе;
•где сохранить макрос. В Word в вашем распоряжении текущий файл и шаблон для всех вновь создаваемых документов — Normal.dot, в Excel — текущая книга, возможность создать макрос одновременно с созданием новой книги и личная книга макросов PERSONAL.XLS (макросы из этой скрытой книги будут доступны во всех книгах). Подробнее про то, где может храниться программный код, мы поговорим в
разд. 2.2;
•Описание. В это поле лучше ввести информацию о том, для каких целей создается этот макрос — это подарок не только для других пользователей, но и для себя (через несколько месяцев).
Рис. 1.1. Диалоговое окно Запись макроса
2.После нажатия кнопки OK или назначения кнопки или клавиатурной комбинации начнется запись макроса. Указатель мыши при этом примет вид магнитофонной кассеты и появится маленькая панель Остановить запись. На ней всего две кнопки — Остановить запись и Пауза. Если вы случайно закрыли эту панель, остановить запись можно через меню Сер-
вис | Макрос | Остановить запись.
3.Самый простой способ запустить макрос, которому не назначена кнопка или клавиатурная комбинация, — в меню Сервис выбрать Макрос | Макросы (или нажать комбинацию клавиш <Alt>+<F8>), в открывшемся окне
Макрос (см. рис. 1.2) в списке выбрать нужный макрос и нажать кнопку Выполнить. Из этого же окна можно просматривать и редактировать макросы, удалять или перемещать их и т. п.
Если макросов создано много, то получить список всех назначений клавиш (включая назначения для встроенных макросов Word) можно при помощи меню Сервис | Макрос | Макросы, затем в окне Макрос в списке Макросы из выбрать Команд Word, а в списке Имя выбрать макрос ListCommands и нажать кнопку Выполнить. В ответ на приглашение нужно выбрать Текущие настройки меню и клавиш (иначе будет выведен полный список команд Word на 26 страниц). В ваш документ будет вставлена таблица с текущими назначениями клавиш, которую можно распечатать.
Если у вас уже есть значительное количество созданных при помощи макрорекордера макросов, то после освоения языка VBA имеет смысл подумать над ними и, может быть, внести изменения. Чаще всего стоит обратить внимание на следующие моменты:
если в вашем макросе повторяются какие-либо действия, возможно стоит организовать цикл;
может быть, есть смысл в ходе выполнения уточнить что-либо у пользователя (при помощи встроенной функции VBA InputBox() или элементов управления);
чтобы в ходе выполнения макроса не возникало ошибок, можно реализовать в нем проверку текущих условий.
Как все это сделать, будет рассказано в следующих главах.
И еще один очень важный момент, связанный с макрорекордером. Помимо того, что он позволяет создавать простенькие программы, пригодные для самостоятельного использования без всяких доработок, макрорекордер — это еще и ваш разведчик в мире объектных моделей приложений Office. Опытные разработчики часто пользуются им для того, чтобы понять, какие объекты из огромных объектных моделей приложений Office можно использовать для выполнения тех или иных действий.
Приведу пример: вам нужно автоматизировать создание диаграмм в Excel. Поскольку в русской версии Excel для создания диаграммы вручную вы используете команду Вставка | Диаграмма, то, скорее всего, в справке по VBA вы начнете в первую очередь искать объект Diagram. И вы его найдете и, возможно, потратите определенное время на его изучение, прежде чем поймете, что это не та диаграмма! Объект Diagram представляет то, что в русской версии Excel называется «Схематическая диаграмма» (доступна из того же меню Вставка), а обычная диаграмма — это объект Chart. А вот если бы вы пустили вперед разведчика (т. е. создали бы диаграмму с записью в макрорекорде-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Это глава из книги Билла Джелена Гуру Excel расширяют горизонты: делайте невозможное с Microsoft Excel.
Задача: макрос, хранящийся в личной книге макросов, всегда в вашем распоряжении. Вы можете запустить его из любой книги, открытой на компьютере. Кроме того, вам не придется преодолевать настройки безопасности для запуска макросов, хранящихся в личной книге макросов. Если вы никогда не пользовались личной книгой макросов, то ее у вас нет, и ее необходимо создать на вашем ПК.
Решение: в Excel 2007 и более поздних версиях выполните следующие действия:
Откройте любую рабочую книгу или создайте новую (Ctrl+N).
В нижнем левом углу окна Excel справа от слова ГОТОВО в строке состояния вы найдете значок записи макроса (рис. 1). Щелкните по нему.
Рис. 1. Пиктограмма записи макроса является одной из немногих иконок вне ленты
Скачать заметку в формате Word или pdf
Excel выведет диалоговое окно Запись макроса (рис. 2). Введите имя макроса, например, HelloWorld (без пробелов). В поле Сохранить в с помощью раскрывающегося списка выберите Личная книга макросов. Поля Сочетание клавиш и Описание можно оставить пустыми. Нажмите Оk.
Рис. 2. Диалоговое окно Запись макроса
Примечание. Excel позволяет хранить макросы в личной книге макросов, в той же (активной) книге, в отдельной (новой) книге.
Выполните какое-либо действие, чтобы запустить макро рекордер. Например, выделите ячейку, нажмите Ctrl+B и наберите Hello.
Остановите запись макроса, нажав на квадратный значок в нижнем левом углу окна Excel в строке состояния (рис. 3). Эта иконка появляется на месте иконки записи макроса, как только стартовала запись макроса.
Рис. 3. Пиктограмма остановки записи макроса
Примечание: вы также можете записать макрос, выбрав на ленте закладку ВИД, и кликнув Макросы –> Запись макроса (рис. 4), или вкладку РАЗРАБОТЧИК, перейти в область Код и кликнуть з Запись макроса. Кнопку Остановить запись вы найдете в этих же местах во время записи макроса.
Рис. 4. Меню ВИД –> Макросы –> Запись макроса
Личная книга макросов – это скрытая книга. В ней нет ничего особенного. Если вам интересно, вы можете отобразить её с помощью команды Отобразить на вкладке ВИД (рис. 5). Книга содержит один пустой лист. Полезное содержимое личной книги макросов обычно изучают в редакторе VBA.
Рис. 5. Вывод на экран скрытой личной книги макросов
Чтобы увидеть код, хранящийся в личной книге макросов, выполните следующее:
Нажмите Alt+F11 или выберите РАЗРАБОТЧИК –> Visual Basic. Если вы никогда ранее не использовали макросы, вы видите строку меню, панель инструментов, большую серую область.
Нажмите Ctrl+R или выберите View –> Project Explorer (Microsoft Visual Basic for Applications не русифицирован). Отобразится окно проектов – Project — VBAProject (рис. 6). В нем появится список всех открытых книг, а также книг с установленными на вашем ПК надстроек.
Рис. 6. Окно проектов в VBA
Книги представлены в виде структуры. Если ее раскрыть, можно найти листы и модули (там, где они имеются). Используйте знак «+» рядом с PERSONAL.XLSВ чтобы развернуть структуру. Нажмите на знак «+» рядом с Modules, чтобы увидеть список модулей. Если вы только что записали свой первый макрос, вы видите только Module1. Если вы запишите несколько макросов, Excel добавит новые модули, такие как, Module2, Module3, и так далее.
Чтобы увидеть код любого модуля, дважды щелкните на модуле в окне проектов. Также можно щелкнуть правой кнопкой мыши на модуль и выбрать команду View Code. Код отобразится в отдельном окне (рис. 7).
Рис. 7. Окно кода
Если вы хотите запустить макрос из этой книги, вы можете набрать или вставить его в любой существующий модуль в PERSONAL.XLSB. Обратите внимание, что после изменения кода в PERSONAL.XLSB при попытке закрыть Excel, появится запрос о том, хотите ли вы сохранить ваши изменения PERSONAL.XLSВ. Не забудьте сохранить, или ваш код будет утерян. Вы также можете, находясь в окне MS VBA (как на рис. 6), пройти по меню File –> Save PERSONAL.XLSВ или нажать Ctrl+S.
Резюме: создание личной книги макросов начните с записи какого-либо простейшего макроса. Указав при сохранении макроса — Личная книга макросов, вы добьетесь своей цели.