Excel

Где находится личная книга макросов excel 2019: Как использовать Личную Книгу Макросов

Содержание

Как использовать Личную Книгу Макросов

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

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

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

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

Без вопросов.

А если макрос должен быть относительно универсален и нужен в любой книге Excel — как, например, макрос для конвертирования формул в значения? Не копировать же его код на Visual Basic каждый раз в каждую книгу? Кроме того, рано или поздно, почти любой пользователь приходит к мысли, что неплохо было бы сложить все макросы в одну коробку, т.е. иметь их всегда под рукой. И может быть даже запускать не вручную, а сочетаниями клавиш? И вот тут может здорово помочь Личная Книга Макросов (Personal Macro Workbook).

Как создать Личную Книгу Макросов

На самом деле, Личная Книга Макросов (ЛКМ) — это обычный файл Excel в формате двоичной книги (Personal.xlsb), который автоматически в скрытом режиме открывается одновременно с Microsoft Excel. Т.е. когда вы просто запускаете Excel или открываете любой файл с диска, на самом деле открываются два файла — ваш и Personal.xlsb, но второго мы не видим. Таким образом все макросы, которые хранятся в ЛКМ оказываются доступы для запуска в любой момент, пока открыт Excel.


Если вы еще ни разу не пользовались ЛКМ, то изначально файл Personal.xlsb не существует. Самый легкий способ его создать — это записать рекордером какой-нибудь ненужный бессмысленный макрос, но указать в качестве места для его хранения Личную Книгу — тогда Excel будет вынужден автоматически ее для вас создать. Для этого:

  1. Откройте вкладку Разработчик (Developer). Если вкладки Разработчик не видно, то ее можно включить в настройках через Файл — Параметры — Настройка ленты (Home — Options — Customize the Ribbon).
  2. На вкладке Разработчик
    нажмите кнопку Запись макроса (Record Macro). В открывшемся окне выберите Личную книгу макросов (Personal Macro Workbook) как место для хранения записанного кода и нажмите OK:

  3. Остановите запись кнопкой Остановить запись (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 Files\Microsoft Office\Office12\XLSTART
  • C:\Documents and Settings\Computer\Application Data\Microsoft\Excel\XLSTART
  • C:\Users\имя-вашей-учетной-записи\AppData\Roaming\Microsoft\Excel\XLSTART

Как вариант, можно спросить о положении этой папки сам Excel с помощью VBA. Для этого в редакторе Visual Basic (кнопка Visual Basic на вкладке Разработчик) нужно открыть окно Immediate сочетанием клавиш Ctrl+G, ввести туда команду ? Application.StartupPath и нажать на Enter:


Полученный путь можно скопировать и вставить в верхнюю строку окна Проводника в Windows и нажать Enter — и мы увидим папку с нашим файлом Личной Книги Макросов:

P.S.

И несколько практических нюансов вдогон:

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

Ссылки по теме


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

Введение

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

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

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

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

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

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

    :

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

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

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

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

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

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

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

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

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

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

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

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

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

  • в Excel 2003 и старше — выбрать в меню Сервис — Макрос — Начать запись (Tools — Macro — Record New Macro)
  • в Excel 2007 и новее — нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)

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

  • Имя макроса — подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
  • Сочетание клавиш — будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис — Макрос — Макросы — Выполнить (Tools — Macro — Macros — Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
  • Сохранить в… — здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
    • Эта книга — макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
    • Новая книга — макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т. е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
    • Личная книга макросов — это специальная книга Excel  с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.

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

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

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

  • Любой выделенный в списке макрос можно запустить кнопкой Выполнить (Run).
  • Кнопка Параметры (Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
  • Кнопка Изменить (Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Личная книга макросов в Excel и как ее использовать

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

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

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

  1. Выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Запись макроса».
  2. В появившемся диалоговом окне «Запись макроса», из выпадающего списка «Сохранить в:» выберите опцию «Личная книга макросов». И нажмите на кнопку OK.
  3. Теперь выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Остановить запись».
  4. Откройте редактор Visual Basic: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11. В окне «Project-VBAProject», в дереве проектов появиться доступная еще одна книга Personal.xlsb. Кликните на «плюсик» слева на против этой книги, чтобы раскрыть проект книги Personal.xlsb. А после двойным щелчком отройте ее Module1.
  5. В результате откроется окно кода модуля с зарегистрированным макросом. Удалите его код и введите код своего макроса. Выберите инструмент в редакторе макросов: «File»-«Save Personal.xlsb», а потом закройте редактор Visual Basic.


Теперь у вас подключена скрытая книга для хранения макросов, к которым можно получить доступ из любой другой рабочей книги. Личная книга макросов где находится находиться в папке автозагрузки файлов Excel – XLSTART: C:\Documents and Settings\User_Name\AppData\Roaming\Microsoft\Excel\XLSTART\Personal. xlsb

Примечание. XLSTART – это папка для автозагрузки файлов вместе с запуском программы Excel. Если сохранить файл в данную папку, то он будет открываться вместе с программой Excel. Для версий старше 2007 путь к папке автозагрузки будет следующим: C:\Program Files\Microsoft Office\Office12\Xlstart.

Если вам нужно записать в нее новый макрос просто откройте редактор, а потом откройте модуль книги Personal.xlsb. Уже записанные в нее макросы удалять не нужно. Они не будут между собой конфликтовать если соблюдать одно простое правило – в одном модуле нельзя хранить макросы с одинаковыми именами.

Как работать с макросами в Excel 2010 без программирования кода

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

Вам даже не нужно быть программистом и знать язык программирования «VBA» чтобы создавать свои макро-программы с помощью инструмента записи макросов.

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

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

Применение VBA и макросов в Microsoft Excel

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

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

Как записать готовый макрос в Excel? Очень просто:

  1. На вкладке «Разработчик» нажимаем кнопку «Запись макроса».
  2. В появившимся диалоговом окне заполняем параметры макроса. И нажимаем «ОК».
  3. После завершения нажимаем на кнопку «Остановить запись», после чего макрос будет автоматически сохранен.
  4. Для выполнения или редактирования записанного макроса нажимаем на кнопку «Макросы» (или комбинацию клавиш ALT+F8). Появится окно со списком записанных макросов и кнопками для управления ими.

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



Как работать с макросами в Excel

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

1 Правильные имена в макросах.

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

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

2 Используйте относительные (не абсолютные) адреса ячеек

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

По умолчанию в Excel включен режим «Абсолют», но вы можете изменить его, включив кнопку «Относительные ссылки» расположенную ниже под кнопкой «Запись макроса» на панели инструментов вкладки «Разработчик»:

3 Всегда начинайте запись с курсором в A1

Абсолютный отсчет ячеек, всегда ведется с исходного положения (адрес ячейки А1) – до адреса курсора с вашими данными. Если вы сохранили ваш макрос в книге личных макросов (рекомендуется так и делать), то вы можете использовать свою программу на других листах с аналогичными данными. Независимо от того, где ваш курсор позиционируется, когда вы начинаете запись макроса! Даже если он уже находится в ячейке A1, ваш первый макрос лучше записывать после нажатия клавиш должны быть Ctrl + Home.

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

4 Всегда перемещаться с клавиш направления в момент записи макроса

Используйте кнопки со стрелками для управления курсором (Ctrl + Up, и т.п.). Позиционируйте курсор, так чтобы вы могли добавить, изменить или удалить данные внутри таблицы по мере необходимости.

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

5 Создавайте макросы для конкретных небольших задач

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

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

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

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

Доброго времени, друзья. В  сегодняшнем выпуске расскажу об интереснейшей функции в самом ходовом офисном пакете программ от Microsoft Office. Тем, кто постоянно работает с таблицами Excel, знает сколько рутинных операций приходится иногда делать с содержимым. Если документов много —  приходится одни и те же действия повторять многократно. От выделения мышкой и копирования до более сложных —  таких как вычисления, заполнение, очистка отдельных граф, создание таблиц, макетов и так далее.

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

Лично для меня знакомство  с  макросами в свое время превратилось в изучение программирования. Дело в том, что Microsoft Office является еще и легкой и понятной средой для этого. В нем есть свой встроенный язык — Visual Basic for Application или сокращенно VBA. И когда  записываете макросы, Вы  вы  как бы становитесь программистом. При этом не обязательно на первых этапах знать язык. Программный код можно посмотреть уже потом, в редакторе и изучать. Как смотреть — об этом так же расскажу.

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

Что означает макросы и как с ними работать?

Итак, макрос — это некий программный код, который описывает ПОСЛЕДОВАТЕЛЬНОСТЬ ваших действий в документе. Записывается даже перемещение  вашего курсора по ячейкам, нажатие клавиш. Сначала Вы записываете макрос. Когда понадобится, Вы в  Excel запускаете этот код на выполнение и все записанные ранее действия выполняются автоматически. Например, у Вас есть одна и та же таблица, макет  которой  Вы каждую неделю создаете по новый, меняете оформление, или очищаете графы. Вы нажимаете кнопку, и вот, то на что вы тратили 5-10 минут заняло у вас всего одну секунду.

Для начала нужно настроить Excel для работы с макросами. Это просто. На примере Office 2007 покажу как . В более поздних редакциях делается все почти аналогично. Сначала заходим в «Параметры»:

Сначала настроим «Ленту»;  нужно включить «Режим разработчика»:

Если Вы собираетесь серьезно работать с макросами — нужно включить еще одну настройку.  Здесь же переходим в «Центр управления безопасностью» и настраиваем «Параметры центра управления безопасностью»:

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

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

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

Мы пока что научимся записывать несложные макросы. Сделать это очень просто. В «Ленте» у нас теперь появились соответствующие значки «Разработчик»:

В этом режиме нам будут доступны и остальные функции — «режим конструктора».   Можно самостоятельно  создавать окна, кнопки. А в редакторе Visual Basic можно редактировать созданные макросы. Итак, покажу, как все это работает. При нажатии кнопки «Запись макроса»  сначала нужно будет заполнить его наименование(без пробелов), горячие клавиши вызова (не обязательно) и место где он будет сохранен:

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

Вы сами увидели, что процесс создания одной простенькой  демо — таблицы занимает от пяти и более минут. А макрокомандой мы  таблицу  создали за 2 секунды.  А если речь идет о сложных проектах? Ответ очевиден, создав один раз процедуру, вы сэкономите время и увеличите производительность своей работы.

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

Важно! «Личная книга» макросов хранится в папке пользователя по пути C:\Users\%Пользователь компьютера%\AppData\Roaming\Microsoft\Excel\XLSTART. Этой книгой можно делится с другими или удалять, если что то не получилось.

Наш макрос теперь доступен по кнопке «Макросы», оттуда его можно запускать.

Что  значит макрос в Excel 2016 и для чего он предназначен?

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

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

Для начала не забудем сделать настройки MSoffice 2016. Так же идем в «Параметры», но далее  идем в «Настроить ленту»

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

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

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

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

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

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

Далее, программа предложит способ создания макроса. Если Вы уже продвинутый VBA- програмиист, можно руками написать код, нажав «Создать». Но мы сегодня будем использовать уже знакомый нам способ — запись наших действий:

Запись начата! Мы собираемся очистить выбранные графы от содержимого, поэтому одновременно выделим нужные диапазоны в  графах «Количество» и «Цена». Для этого сначала выделим графу «Количество», затем зажимаем клавишу Ctrl и не отпуская ее выделяем нужные ячейки в графе  «Цена», после отпускаем клавишу:

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

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

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

Я  изменил текст на «Очистить». Цвет, размер текста шрифт в кнопках так же можно  менять по вкусу. Заглянем для этого в «Формат объекта»:

Там все  примерно так, как при форматировании ячейки. А изменять размеры самой кнопки и ее местоположение можно растягивая ее за края или перетаскивать:

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

Другой способ — можно  щелкнуть правой кнопкой мыши по кнопке и выбрать «Назначить макрос»; результат будет аналогичный. Открылся редактор VBA, в котором можно делать много чего интересного и полезного. Мы пока смотрим, что мы там напрограммировали:

Простой и понятный пример кода; после комментариев (выделенных зеленым) идет сам код «Выбрать диапазон ячеек сначала один, затем другой, затем   удаляем содержимое».  Закрыть редактор можно как обычное окошко — нажав на крестик. Надеюсь,  что такое макросы — Вы разобрались. Заодно узнали, как можно стать программистом.  Удачи в освоении программы!

Автор публикации

не в сети 1 неделя

admin

0 Комментарии: 61Публикации: 386Регистрация: 04-09-2015

Защита проекта VBA в MS Excel / Хабр

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

Дисклеймер:

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

Цель статьи показать слабые и сильные стороны каждого вида защиты проекта VBA в MS Office.

Демонстрация разработанных инструментов, в надстройке Macro Tools VBA, для снятия и установки той или иной защиты. 

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


Главная панель Надстройки Macro Tools VBA

Первый вид защиты — Обычный пароль


Время на снятие: мгновенно

Недостаток: быстрый доступ к запароленному модулю VBA

Стандартный инструмент (В среде VBE: панель Tools -> VBAProject Properties -> Protection). 

Самая легко снимающаяся защита. В интернете легко находится код, для снятия данной защиты.  

Данную защиту можно снять следующим инструментом:


Второй вид защиты — Project is Unviewable


Время на снятие:  от 10 до 15 мин (в ручную)

Недостаток: доступ к исходному коду модуля VBA

Один из самых распространённых видов защит.  Встречается в 95% файлах с защитой модуля VBA. При попытке открыть проект, открывается диалоговое окно, с  сообщением:  Project is Unviewable.


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

Основан, данный вид защиты, на изменение ключей:

CMG=«4A488FCC54D054D054D054D0»

DPB=«0B09CE0F8E108E108E»

GC=«CCCE09520B120C120CED»

в файле vbaProject.bin


Кратко, как создается данная защита


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

Это самый простой вариант данной защиты, но существует множество модификаций.

Алгоритм снятия защиты Project is Unviewable.

1)  Разархивируем подопытный файл, переходим в файл  …\xl\_rels\workbook.xml.rels


2)      В файле workbook.xml.rels  ищем строку, содержащую слово  vbaProject, обычно имеет следующий вид:  />. В этой строке нас интересует ключ Target,иего значение. Значение является название файла, в котором находится проект VBA. Иногда, защищающий меняет значения ключа на printerSettings.bin.Получается маскировка файла с проектом VBA  под другой файл.

3)      Открываем на редактирование файл, указанный в  ключе Target, ищем в файле ключи  CMG, DPB, GC. И меняем в их названиях любую букву на любую другую, например: CMC, DPC, CC. При поиске нужно быть аккуратным, так как защищающий может поместить  в проект форму,  подписью повторяющую один из ключей, например такую: DPB=«0B09CE0F8E108E108E». При ее изменении проект VBA, будет удален из книги Excel.  Сохраняем и закрываем файл.

4)      Переводим архив обратно в файл Excel.

5)      Запускаем приложение Excel, выполняем следующее: в Центре управления безопасностью -> Параметры макросов  -> Отключить все макросы без уведомления. Перезапускаем Excel. Данная операция нужна, для блокировки защиты, которую иногда ставят авторы макросов. Данная защита реализована следующим образом. В модуле VBA «ЭтаКнига», создается процедуры, реагирующие на события открытия книги или закрытия книги. Эти события обычно проверяют, наличие пароля на проект VBA, запрет сохранения и прочее.

6)      Открываем файл. Если все правильно сделано то, Excel, будет ругаться на не правильные ключи, которые мы отредактировали, в пункте 3. Жмем, да, пока данные сообщения не закончатся и диалоговое окно закроется. 

      Если данное сообщение не появляется то, вы отредактировали не файл который содержит проект VBA.


7)      Открываем проект VBA. После всего, проект VBA должен быть доступен.

8)      Но иногда защита не снимается, тогда нужно сохранить файл, проверить, что он действительно сохранился! И проделать повторно операции с 1 по 7. Обычно так происходит когда в файле workbook.xml.rels в ключе Target  установлено printerSettings.bin.При сохранение,  Excel  исправляет это на значение на vbaProject.bin

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


Третий вид защиты — Hidden  Module, скрытые модули VBA

Время на снятие:  от 15 до 20 мин (нужен редактор OLE — объектов, Structured Storage Viewer, например.

Недостаток: доступ к коду модуля VBA

Менее распространенный вид  защиты обычно встречается в комбинации с защитой Project is Unviewable. При установке данной защиты модуль VBA не отображается в проекте книги Excel. О его существовании можно узнать, проанализировав код VBA (что требует время!) или открыть файл Excel в программе  OpenOffice  или  LibreOffice (так же можно смотреть код при защите Project is Unviewable, но данный способ не дает возможность получить рабочий файл, без пароля). 


Просмотр кода VBA в  LibreOffice

Кратко, как создается данная защита


Для создания данной защиты нужно отредактировать файл  с проектом VBA — vbaProject.bin  или printerSettings.bin,в зависимости от настроек в файле …\xl\_rels\workbook.xml.rels. В конце файла удаляются строки вида: Module1=32, 32, 635, 330, Z.  С нужными названиями модулей.
Для снятия данной защиты нужно в файле vbaProject.bin — восстановить удаленные записи модулей.

Данную защиту можно установить следующим инструментом.


Четвертый вид защиты — Обфускация кода


Время на снятие:  неизвестно, зависит от объема кода и пере использования частей кода
Обфусцированный код VBA

Недостаток:  необходимость тестирование файла после обфускации, на работоспособность

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

Для де-обфускации кода нужно иметь  время, специализированное ПО.

Данную защиту можно установить следующим инструментом.


Пятый вид защиты — Перенос кода в dll


Время на снятие:  неизвестно, зависит от языка программирования и квалификации

Недостаток:  необходимости в дополнительном  файле dll

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

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

Заключение


В заключении хочу выделить бесполезность защит:  Project is Unviewable и Hidden  Module которые, по существу ни отчего не защищают. Позволяют просматривать код VBA, без изменения исходного  файла, в таких программах как OpenOffice  или  LibreOffice. Так и снимаются без особых проблем.

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

Макросы

и инструменты VBA можно найти на вкладке Developer , которая по умолчанию скрыта, поэтому первым делом нужно ее включить. Для получения дополнительной информации см. Показать вкладку «Разработчик».

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

Дополнительные сведения о создании макросов см. В разделе «Быстрый старт: создание макроса».

  1. Перейдите на вкладку Developer и щелкните Record Macro .

  2. В диалоговом окне Запись макроса не утруждайтесь вводить имя макроса в поле Имя макроса . Вы можете принять имя, которое дает вам Excel, например Macro1, поскольку это всего лишь временный макрос.

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

  3. В поле Сохранить макрос в поле выберите Personal Macro Workbook > OK . Это наиболее важный шаг, потому что, если у вас еще нет личной книги макросов, Excel создаст ее для вас.

  4. Щелкните Developer > Stop Recording , и Excel создаст вашу личную книгу макросов.

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

Чтобы увидеть созданный вами макрос:

    org/ItemList»>
  1. Перейдите в Developer > Visual Basic , чтобы запустить Visual Basic Editor (VBE) , в котором хранятся ваши макросы.

  2. Вы можете найти свою личную книгу макросов на панели Project Explorer с левой стороны.Если вы его не видите, перейдите в View > Project Explorer .

  3. Дважды щелкните папку VBA Project (PERSONAL.xlsb) > Modules > Module1 , и вы найдете пустой Macro1, который вы записали. Вы можете удалить его или оставить, чтобы добавить код позже.

    Примечание: Когда вы записываете макрос в новом экземпляре Excel, VBA автоматически создает новую папку модуля и увеличивает ее номер. Итак, если у вас уже есть Module1 и Module2, VBA создаст Module3. Вы можете переименовать модули в окне Properties под Project Explorer , чтобы они лучше отражали то, что делают макросы внутри них.

Перенос макросов с одного компьютера на другой

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

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

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

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

  1. Перейдите в Excel > Настройки… > Лента и панель инструментов .

  2. В категории Customize the Ribbon в списке Main Tabs установите флажок Developer , а затем щелкните Save .

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

Дополнительные сведения о создании макросов см. В разделе «Быстрый старт: создание макроса».

  1. Перейдите на вкладку Developer и щелкните Record Macro .

  2. В диалоговом окне Запись макроса не утруждайтесь вводить имя макроса в поле Имя макроса .Вы можете принять имя, которое дает вам Excel, например Macro1, поскольку это всего лишь временный макрос.

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

  3. В поле Сохранить макрос в поле выберите Personal Macro Workbook > OK . Это наиболее важный шаг, потому что, если у вас еще нет личной книги макросов, Excel создаст ее для вас.

  4. Щелкните Developer > Stop Recording , и Excel создаст вашу личную книгу макросов.

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

Чтобы увидеть созданный вами макрос:

  1. Щелкните Developer > Visual Basic , чтобы запустить Visual Basic Editor (VBE) , в котором хранятся ваши макросы.

  2. Вы можете найти свою личную книгу макросов на панели Project Explorer с левой стороны. Если вы его не видите, перейдите в View > Project Explorer .

  3. Дважды щелкните папку VBA Project (PERSONAL.xlsb) > Modules > Module1 , и вы найдете пустой Macro1, который вы записали.Вы можете удалить его или оставить, чтобы добавить код позже.

Примечание: Когда вы записываете макрос в новом экземпляре Excel, VBA автоматически создает новую папку модуля и увеличивает ее номер. Итак, если у вас уже есть Module1 и Module2, VBA создаст Module3. Вы можете переименовать модули в окне Properties под Project Explorer , чтобы они лучше отражали то, что делают макросы внутри них.

Перенос макросов с одного компьютера на другой

Ваш файл Personal.xlsb хранится в папке автозагрузки системы. Если вы хотите поделиться своими макросами с кем-то еще, вы можете скопировать Personal.xlsb в папку автозагрузки на других компьютерах или скопировать некоторые или все его макросы в файл Personal.xlsb на других компьютерах. В Finder выберите Go , затем, удерживая нажатой клавишу Option , выберите Library . На панели Library перейдите к: Group Containers > xyz .Office (где xyz — текстовая строка, например «UBF8T346G9»)> Пользовательский контент > Запуск > Excel . Вставьте файл Personal.xlsb в папку Excel.

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

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

как создавать, использовать и делиться

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

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

Что такое персональная книга макросов Excel?

Персональная книга макросов — это специальный файл с именем Personal.xlsb в Excel 2007 — 2019 или Personal.xls в более ранних версиях. Любые макросы, хранящиеся в этом файле, доступны вам всякий раз, когда вы запускаете Excel. В личной книге замечательно то, что она по умолчанию скрыта, поэтому вы никогда не заметите, как она открывается в серверной части.Никаких действий с вашей стороны не требуется. Microsoft Excel просто знает, где находится этот файл в вашей системе, и ищет его автоматически при каждом запуске.

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

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

Где находится личная книга макросов?

Файл Personal.xlsb хранится в папке XLSTART в следующих местах.

В Windows 10, Windows 7 и Windows Vista:

C: \ Users \ Имя пользователя \ AppData \ Roaming \ Microsoft \ Excel \ XLSTART

В Windows XP:

C: \ Documents and Settings \ Имя пользователя \ Application Data \ Microsoft \ Excel \ XLSTART \

Обратите внимание, что папка AppData по умолчанию скрыта. Итак, чтобы попасть в папку XLSTART в проводнике Windows, установите флажок Скрытые элементы на вкладке View .

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

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

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

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

  1. В любой книге перейдите на вкладку Developer > группу Code и щелкните Record Macro .
  2. Появится диалоговое окно Record Macro . В раскрывающемся списке Сохранить макрос в выберите Personal Macro Workbook и нажмите OK . При желании вы можете изменить имя по умолчанию, например Macro1 , на более значимое.
  3. Если вы хотите записать конкретный макрос, выполните нужные действия. Если ваша цель — просто создать личную книгу, перейдите к следующему шагу.
  4. На вкладке Developer или в строке состояния щелкните Остановить запись .
  5. Сохраните и закройте все открытые книги. При этом отображается сообщение с предложением сохранить изменения, внесенные в личную книгу макросов, и вы нажимаете Сохранить :

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

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

Теперь, когда у вас есть личная книга макросов, как в нее помещать макросы? Это можно сделать четырьмя разными способами:

  • Запишите макрос и сохраните его в личной книге макросов, как показано выше.
  • Напишите макрос в редакторе VB.
  • Скопируйте код VBA из другой книги.
  • Импортировать макросы из файла .bas.

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

После сохранения файла Personal.xlsb на вашем компьютере вы можете просматривать, создавать и редактировать макросы в редакторе Visual Basic. Кроме того, вы можете скопировать код, который хотите повторно использовать, из другой книги.

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

  1. Откройте редактор VB.Для этого нажмите ALT + F11 или нажмите кнопку Visual Basic на вкладке Developer в группе Code .
  2. В окне Project Explorer найдите объект PERSONAL.XLSB , разверните его и дважды щелкните Module1 , чтобы открыть окно кода.
  3. В окне кода введите, скопируйте / вставьте или отредактируйте код VBA.
  4. Закройте редактор VB.
  5. Закройте Excel и при появлении запроса сохраните изменения, внесенные в личную книгу макросов.

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

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

  1. На вкладке Developer в группе Code нажмите кнопку Macros или нажмите сочетание клавиш Alt + 8.
  2. В диалоговом окне Macro вы увидите список макросов, доступных для использования во всех открытых книгах, включая те, которые хранятся в Personal.xlsb файл. Выберите целевой макрос и нажмите Выполнить .

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

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

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

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

  1. Откройте редактор Visual Basic.
  2. В проводнике проекта щелкните правой кнопкой мыши Module1 в разделе ЛИЧНОЕ.XLSB и выберите Export File .
  3. Перейдите в папку, в которой вы хотите сохранить личную книгу макросов, дайте файлу любое имя и нажмите Сохранить .

Чтобы импортировать файл .bas, которым кто-то поделился с вами, щелкните правой кнопкой мыши модуль под PERSONAL.XLSB, в который вы хотите поместить макросы, и выберите Импортировать файл .

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

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

Поделитесь файлом Personal.xlsb

Самый простой способ поделиться личной книгой макросов с кем-либо — отправить им копию файла Personal. xlsb в виде вложения или сохранить ее в облачном хранилище или в локальной сети. А затем другие люди могут поместить ваш файл Personal.xlsb в свою папку XLSTART. Посмотрите, где находится Personal.xlsb.

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

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

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

Экспорт макросов в файл .bas

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

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

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

Если однажды вы откроете Excel и обнаружите, что ваших любимых макросов больше нет, не паникуйте! Скорее всего, Личный.xlsb был отключен Excel после сбоя, обновления или по любой другой причине.

Вот шаги, чтобы ваша личная книга снова работала:

  1. В Excel щелкните Файл > Параметры .
  2. В диалоговом окне Параметры Excel выберите Надстройки с левой стороны.
  3. В раскрывающемся списке Управление выберите Отключенные элементы и щелкните Перейти .
  4. В диалоговом окне Отключенные элементы выберите Персональная книга макросов и нажмите Включить .
  5. Перезагрузите Excel.

Как предотвратить открытие Personal.xlsb, но не отключать макросы

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

  1. Перейдите к книге PERSONAL.XLSB.
  2. На вкладке View в группе Window щелкните Hide .

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

Как показать личную книгу в Excel

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

  1. На вкладке Просмотр в группе Окно щелкните Показать .
  2. В диалоговом окне Показать выберите ЛИЧНЫЙ. XLSB и нажмите ОК .

Как удалить файл Personal.xlsb

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

  1. Закройте все книги Excel.
  2. Откройте проводник Windows.
  3. На вкладке Просмотр в группе Показать / скрыть установите флажок Скрытые элементы .
  4. Перейдите в папку XLSTART.В Windows 7-10 он находится здесь:

    C: \ Users \ Имя пользователя \ AppData \ Roaming \ Microsoft \ Excel \ XLSTART \

  5. Выберите PERSONAL.XLSB и нажмите клавишу «Удалить» или щелкните файл правой кнопкой мыши и выберите « Удалить » в контекстном меню.

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

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

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

Где находится макрос в Microsoft Excel 2007, 2010, 2013, 2016, 2019 и 365

Где находится макрос в Microsoft Excel 2007, 2010, 2013, 2016, 2019 и 365

Macro часто используется для повторяющегося выполнения в Microsoft Excel.Пользователям, которым нравится стиль Microsoft Excel 2003 и нравится использование макросов, будет немного сложно работать в Excel 2007, 2010, 2013, 2016, 2019 и 365 из-за нового стиля ленты. В этом разделе представлены два способа найти макрос в Excel 2007/2010/2013, которые вы можете выбрать для работы в классическом стиле или в новом стиле интерфейса.


Теперь давайте посмотрим, где находится макрос в Excel 2010/2013.

Найдите блюдо в классическом меню

Откройте Microsoft Excel, щелкните вкладку Меню , вы можете вернуться к интерфейсу в классическом стиле.Затем просто перейдите в знакомое меню Tools , вы найдете функцию Macro в раскрывающемся меню.



Если у вас не установлено классическое меню для Excel 2007/2010/2013/2016/2019, вы можете…

Открыть Excel 2007/2010/2013; перейдите на вкладку View , щелкните ее, и вы найдете функцию Macros , расположенную в группе Macros. Щелкните стрелку под заголовком «Макросы», и вы сможете легко управлять работой макросов.


Другие статьи по теме …
Классическое меню для офиса

Возвращает знакомые классические меню и панели инструментов в Microsoft Office 2007, 2010, 2013, 2016, 2019 и 365. Вы можете сразу использовать Office 2007/2010/2013/2016 без какого-либо обучения. Поддерживает все языки, и все новые команды 2007, 2010, 2013, 2016, 2019 и 365 были добавлены в классический интерфейс.

Классическое меню для офиса

Он включает классическое меню для Word, Excel , PowerPoint, OneNote, Outlook, Publisher, Access, InfoPath, Visio и Project 2010, 2013, 2016, 2019 и 365.


Классическое меню для Office 2007

Включает классическое меню для Word, Excel , PowerPoint, Access и Outlook 2007.

Снимок экрана классического меню для Excel

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *