Excel 2016 макрос для всех книг

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

Создание и обновление книги «Личные макросы»

  1. На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.
    Команда "Записать макрос" в группе "Код" на вкладке "Разработчик"

  2. В диалоговом окне Запись макроса введите содержательное имя макроса в поле Имя макроса. Не используйте пробелы в имени.

  3. В поле Сохранить в выберитеЛичная книга макроса.
    Диалоговое окно записи макроса

  4. Нажмите кнопку ОК.

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

  6. На вкладке Разработчик в группе Код нажмите кнопку Остановить запись.
    Команда "Остановить запись" в группе "Код" на вкладке "Разработчик"

  7. Закроем книгу.

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

  8. Нажмите кнопку Сохранить, чтобы сохранить книгу.

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

Общий доступ к макросам

Если вы хотите скопировать макрос из личной книги в другую книгу или наоборот, это можно сделать в редакторе 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 выберите пункт Параметры… > ленты & панели инструментов. В категории Настройка ленты в списке Основные вкладки выберите разработчик и нажмите кнопку Сохранить.

Создание и обновление книги «Личные макросы»

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

  1. На вкладке Разработчик нажмите кнопку Запись макроса.

  2. В диалоговом окне Запись макроса введите содержательное имя макроса в поле Имя макроса. Не используйте пробелы в имени.

  3. В поле Сохранить в выберитеЛичная книга макроса.

  4. Нажмите кнопку ОК.

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

  6. На вкладке Разработчик щелкните Остановить запись.

  7. Сохраните изменения, закроем книгу и, наконец, закроем Excel.

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

  8. Нажмите кнопку Сохранить, чтобы сохранить книгу.

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

Общий доступ к макросам

Если вы хотите скопировать макрос из личной книги в другую книгу или наоборот, это можно сделать в редакторе 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 библиотеке.

In Excel, you can make it so all of your macros can be easily accessed by any Excel workbook.

To do this we need to create what is called a «personal macro workbook» and then save it.  All of the macros that we want to use in Excel will be stored within this personal macro workbook and will then be accessible by any Excel file.

Steps to Make any Macro Available in All Excel Files

  1. Open an Excel file and then go to record a dummy macro, recording this dummy macro is what will create the «personal macro workbook» that we need in order to store the macros.
  2. To record a macro go to the Developer tab, if that is visible, or simply look to the bottom left of the Excel window.  From there, click the Record Macro button:
    0090ff8f1346bb6e5fd58a4f23a2e878.jpg
  3. On the screen that appears, make sure to select Personal Macro Workbook from the Store macro in: drop down box and then hit the OK button. Nothing else matters here because we just need to record a simple macro, anything really.
    aa5c83eef649501987c1791017105057.png
  4. Select any cell in the worksheet and then just click the Stop Recording macro button, which is in the exact same location as the Record Macro button in step 2.
    4f55b8f6ab9215a22b4f2630cbcf1a80.png
  5. Now hit Alt + F11 on the keyboard so we can go to the VBA/Macro editor window.  You will now see the PERSONAL.XLSB file appear in the top left pane of the window.
    122bce41fec5716168a2e10c8736d184.png
  6. All you have to do now is to add Modules and Macros to this file like you would to any normal Excel file. Double-click Module 1 and we see the macro that we just recorded:
    80a7034fa3c5d613c06bc0f72c54f20c.png

As you can see, this new PERSONAL.XLSB file behaves just like a regular file in the VBA window.  This is where you will store any macros that you want to be able to access from all Excel files.

Notes

The personal macro workbook file does NOT travel with your Excel files when you send them; this PERSONAL.XLSB file only remains on your computer for you to use.  So, if you send a workbook to another person, they will not be able to access the same macros that you have unless you also put those macros in the workbook you sent.

You must follow the above steps to create the personal macro workbook but, once you have created it, you can access it from any workbook on your computer by simply going to the VBA/Macro editor window (Alt + F11).  As such, once it is created, adding macros to this new file is the same as adding it to any other Excel file — open any workbook, go to the VBA window, add a module to the PERSONAL.XLSB file and then add a macro.

The sample file for this tutorial is empty because, remember, you cannot send the personal macro workbook file with Excel files.


Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Similar Content on TeachExcel

Vlookup Function That Searches The Entire Workbook in Excel — UDF

Macro: With this VLOOKUPWORKBOOK function, you will have to power to more quickly and easily ana…

Copy and Paste Data using Macro VBA in Excel

Tutorial: How to copy and paste data using a Macro in Excel. I’ll show you multiple ways to do this,…

Get the Name of a Worksheet in Macros VBA in Excel

Tutorial: How to get the name of a worksheet in Excel using VBA and Macros and also how to store tha…

Highlight, Sort, and Group the Top and Bottom Performers in a List in Excel

Tutorial:
How to highlight the rows of the top and bottom performers in a list of data.
This allows…

Sort Data that Doesn’t Have Headers in Ascending Order in Excel

Macro: Sort data that doesn’t have headers in ascending order in Excel with this macro. This is a…

Loop through a Range of Cells in a UDF in Excel

Tutorial:
How to loop through a range of cells in a UDF, User Defined Function, in Excel. This is …

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons

50+ Hours of Video

200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Содержание

  • 1 Как сохранить макрос в личную книгу макросов
    • 1.1 Как создать Личную Книгу Макросов
    • 1.2 Как использовать Личную Книгу Макросов
    • 1.3 Где хранится Личная Книга Макросов
    • 1.4 P.S.
    • 1.5 Ссылки по теме

Большинство пользователей 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 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 будет вынужден автоматически ее для вас создать. Для этого:

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

    как сделать общий макрос excel для всей системы

  3. Остановите запись кнопкой Остановить запись (Stop Recording) на вкладке Разработчик (Developer)

Проверить результат можно, нажав на кнопку Visual Basic там же на вкладке Разработчик — в открывшемся окне редактора в левом верхнем углу на панели Project — VBA Project должен появиться наш файл PERSONAL.XLSB. Его ветку которого можно развернуть плюсиком слева, добравшись до Module1, где и хранится код только что записанного нами бессмысленного макроса:

как сделать общий макрос excel для всей системы

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

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

Дальше все просто. Любой нужный вам макрос (т.е. кусок кода, начинающийся на Sub и заканчивающийся End Sub) можно смело копировать и вставлять либо в Module1, либо в отдельный модуль, добавив его предварительно через меню Insert — Module. Хранить все макросы в одном модуле или раскладывать по разным — исключительно вопрос вкуса. Выглядеть это должно примерно так:

как сделать общий макрос excel для всей системы

Запустить добавленный макрос можно в диалоговом окне, вызываемом с помощью кнопки Макросы (Macros) на вкладке Разработчик:

как сделать общий макрос excel для всей системы

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

Кроме обычных макросов-процедур в Личной Книге можно хранить и пользовательские макро-функции (UDF = User Defined Function). В отличие от процедур, код функций начинаются с оператора Function или Public Function, а заканчиваются на End Function:

как сделать общий макрос excel для всей системы

Код необходимо аналогичным образом скопировать в любой модуль книги PERSONAL.XLSB и затем можно будет вызвать функцию обычным образом, как любую стандарную функцию Excel, нажав кнопку fx в строке формул и выбрав функцию в окне Мастера Функций в категории Определенные пользователем (User Defined):

как сделать общий макрос excel для всей системы

Примеры таких функций можно в больших количествах найти в интернете или здесь же на сайте (сумма прописью, приблизительный текстовый поиск, ВПР 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:

как сделать общий макрос excel для всей системы

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

как сделать общий макрос excel для всей системы

P.S.

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

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

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

  • Что такое макросы, как их использовать в работе
  • Полезности для VBA-программиста
  • Тренинг «Программирование макросов на VBA в Microsoft Excel»

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

Если вы еще не знакомы с макросами в 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, где и хранится код только что записанного нами бессмысленного макроса:

Личная Книга Макросов в редакторе VBA

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

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

Дальше все просто. Любой нужный вам макрос (т.е. кусок кода, начинающийся на 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 — и мы увидим папку с нашим файлом Личной Книги Макросов:

Файл Личной Книги Макросов в папке XLSTART

P.S.

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

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

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

  • Что такое макросы, как их использовать в работе
  • Полезности для VBA-программиста
  • Тренинг «Программирование макросов на VBA в Microsoft Excel»

Сохранение макроса

​Смотрите также​​ именем копии REPEAT_:​ «Книга1.xls» sExp =​ регулярно скидывать в​ & IIf(Right(sFileName, Len(sExpansion))​Alex_ST​ ИМХО, InputBox и​ через InputBox или​Filename:=»трам-пам-пам.xls», _​ рабочий файл (имена-то​ Или открыть в​Если вам нужно записать​ «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или​Остановить запись​.​ ее текст может​ макрос Excel предложит​Примечание:​ FileName = Application.GetSaveAsFilename(InitialFileName:=sFullFilePath,​ Right(FileName, Len(FileName) -​ разные директории на​ <> sExpansion, sExpansion,​

​: К стати, не​ окно задания пути​ ещё как-то…​FileFormat:=xlNormal, _​ совпадают!!!).​ редакторе Personal и​ в нее новый​ нажмите комбинацию горячих​.​Чтобы при запуске Excel​ содержать неточности и​

Сохранение макроса в текущей книге

​ два варианта:​Мы стараемся как​ _ FileFilter:=»Excel Files​ InStrRev(FileName, «.») +​ общем ресурсе.​​ «»)​​ подскажите «на вскидку»​​ сохранения файла -​​В чём хитрость-то?​Password:=»», _​или​ туда вставить модуль?​ макрос просто откройте​ клавиш ALT+F11. В​При закрытии Excel в​ автоматически открывались книги,​ грамматические ошибки. Для​Сохранить в виде книги​ можно оперативнее обеспечивать​

Книга с макросами или кодом VBA

  • ​ (*» & sExp​ 1) ‘ расширение​Достало постоянно выбирать​​If sFileName =​​ как к имени​

  • ​ это «две большие​The_Prist​WriteResPassword:=»», _​​- сказать Ёкселю​​z_korch​

​ редактор, а потом​ окне «Project-VBAProject», в​ конечном итоге будет​

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

  2. ​ вас актуальными справочными​​ & «), *»​​ файла вместе с​​ куда и какой​​ ThisWorkbook.FullName Then​​ файла при сохранении​ разницы» …​​: А кто мешает​
    Сохранить как книгу с поддержкой макросов

  3. ​ReadOnlyRecommended:=True, _​​ «Сохранить как…» и​​: Может я не​

Создание и сохранение макросов в личной книге

​ откройте модуль книги​ дереве проектов появиться​ предложено сохранить изменения​ действия.​ эта статья была​ (XLSM-файл), выбрав​ материалами на вашем​ & sExp &​ точкой (например, «.xls»)​ файл сохранять…​MsgBox «Нельзя сохранить​ добавить перед расширением​The_Prist​ перед этим вывести​

support.office.com

Запись макроса для открытия определенных книг при запуске Excel

​CreateBackup:=False​​ указать с каким​ знаю как в​ Personal.xlsb. Уже записанные​ доступная еще одна​ в личной книге​Откройте вкладку​ вам полезна. Просим​Нет​ языке. Эта страница​ «, All Files​ FileName = Left(FileName,​Переделал макрос Save_Copy_As​ файл под имененм​ суффикс — дату​: Я Вам уже​ диалог?​End Sub​ именем, куда и​ редакторе открыть Personal?Когда​ в нее макросы​ книга Personal.xlsb. Кликните​

​ макросов. Нажмите кнопку​Разработчик​ вас уделить пару​.​ переведена автоматически, поэтому​ (*.*),*.*», _ Title:=»Сохранение​ Len(FileName) — Len(sExp))​ так, что путь​ открытого файла!», vbCritical​ и время сохранения?​ целый пример накатал​

​Dim sFileName As​не подходят, т.к.​ с какими паролями​​ в VBA открываю​​ удалять не нужно.​ на «плюсик» слева​ «Да», чтобы макрос​

  1. ​и нажмите кнопку​​ секунд и сообщить,​​Сохранить в виде книги​​ ее текст может​​ копии файла») ‘задать​ & sSuff &​​ последнего сохранения копии​​ + vbYesNo, «Ошибка»​

  2. ​ (ну, например, Имя_моего_рабочего_файла(01-06-2010​​ — чем он​​ String, sExpansion As​​ это как раз​​ сохранить файл. А​​ View->Project, то вижу​​ Они не будут​

  3. ​ на против этой​​ запускался при каждом​​Запись макроса​

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

  1. ​ sExp ‘ например,​​ запоминается в самом​​GoTo BEGIN_​​ 14-30).xls​​ не устраивает? Выбор​

Группа

  1. ​ String​​ и есть описанный​​ потом закрыть тот​​ среди объектов только​​ между собой конфликтовать​

  2. ​ книги, чтобы раскрыть​​ запуске Excel.​​.​​ вам, с помощью​​ выбрав​

  3. ​ грамматические ошибки. Для​ имя копии файла​ «Книга1 [2012.02.06 15-24’39»].xls»​

  4. ​ файле в коллекции​End If​The_Prist​ через диалог, сохраняет​​BEGIN_:​​ мною выше второй​ сетевой, видный для​

  5. ​ Лист1,2,3,и ЭтаКнига… все.​​ если соблюдать одно​​ проект книги Personal.xlsb.​

  6. ​Каждый раз при запуске​​В поле​​ кнопок внизу страницы.​​Да​​ нас важно, чтобы​ в окне выбора​ On Error Resume​ Names​ThisWorkbook.Password = «1»:SetAttr​: SetAttr ThisWorkbook.FullName, vbReadOnly​ куда укажешь и​sFileName = ThisWorkbook.Name​ случай…​ всех, файл и​

  7. ​ Если Insert->Module?, то​​ простое правило –​​ А после двойным​​ Excel автоматически будут​​Имя макроса​

  8. ​ Для удобства также​.​ эта статья была​ If VarType(FileName) =​ Next sDirPath =​Два дня поюзал​ ThisWorkbook.FullName, vbReadOnly​Alex_ST​

    ​ с паролем, да​sExpansion = Right(sFileName,​tolikt​ открыть свой рабочий.​

support.office.com

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

​ тоже предлагает сохранить​ в одном модуле​ щелчком отройте ее​ открываться книги, включенные​введите​ приводим ссылку на​Чтобы сохранить макрос как​ вам полезна. Просим​ vbBoolean Then Exit​ .Names(sPath_in_Names).Value ‘ считать​ — понравилось!​ThisWorkbook.SaveCopyAs sFileName​: К сожалению, свойство​ еще и предупреждает,​ Len(sFileName) — InStrRev(sFileName,​: .SaveCopyAs чем не​ Это тоже не​ только в «Книга1-ЭтаКнига(Code)»​ нельзя хранить макросы​ Module1.​ в макрос.​Auto_Open​

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

​ оригинал (на английском​ книгу с поддержкой​ вас уделить пару​

  1. ​ Sub ‘ если​РАЗРАБОТЧИК.
  2. ​ из коллекции .Names​Sub Save_Copy_As() ‘—————————————————————————————​ThisWorkbook.Password = «»:SetAttr​ vbReadOnly при SaveCopyAs​ если такой файл​ «.») + 1)​ устраивает?​Запись макроса.
  3. ​ слишком удобно, т.к.​kaa​Остановить запись.
  4. ​ с одинаковыми именами.​В результате откроется окно​Большинство пользователей Excel знают,​.​ языке) .​ макросов,​ секунд и сообщить,​ нажали «Отмена», то​ значение, ранее сохраненное​ ‘ Procedure :​ ThisWorkbook.FullName, vbNormal​ задать не удаётся…​ есть.​sFileName = Application.GetSaveAsFilename​The_Prist​Personal.xlsb.
  5. ​ требует много «мышкодвижений».​: в экселе Сервис-Параметры​z_korch​ кода модуля с​ как создать и​В списке​Предположим, что вы хотите​щелкните​ помогла ли она​ FileName = False,​

​ под именем sPath_in_Names​

​ Save_Copy_As ‘ Author​Hugo​А нельзя ли​Alex_ST​If sFileName =​: ThisWorkbook.Password = «1»​А недавно поставил​ вкладка «Общие» там​: Добрый день! Спасибо​ зарегистрированным макросом. Удалите​ использовать макрос внутри​Сохранить в​

​ записать макрос для​Нет​ вам, с помощью​ если «Сохранить» -​ If Err Then​ : Alex_ST ‘​:​ его задать для​: The_Prist, вы с​ «False» Then Exit​ThisWorkbook.SaveCopyAs ‘полный путь,​ себе прогу «PDF-Exchange»​ есть поле «каталог​

​ за замечательный сайт!Много​ его код и​ файла одной рабочей​выберите пункт​ открытия книг, которые​.​ кнопок внизу страницы.​ полный путь к​ .Names.Add sPath_in_Names, .Path​ Topic_HEADER : Как​Alex_ST, про дату в​ уже созданного файла-копии?​ такой скоростью создаёте​ Sub​ включая расширение файла.​

exceltable.com

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

​ и увидел там​​ автозагрузки». указывате там​ полезного нашла,но с​ введите код своего​ книги. В случаи,​Личная книга макросов​ используете каждый день,​В окне​ Для удобства также​ файлу вместе с​ & «»: sDirPath​ макросом сохранить копию​ названии есть в​The_Prist​ свои ответы пока​sFileName = sFileName​ ДОЛЖЕН БЫТЬ В​ возможность «Сохранить копию​ путь.​ этой проблемой не​ макроса. Выберите инструмент​ когда необходимо использовать​.​ при запуске Excel.​Сохранить как​ приводим ссылку на​ его именем If​ = .Names(sPath_in_Names).Value ‘​ текущего файла? ‘​ приёмах:​: Алекс, ну чтоже​ я ввожу свои,​

​ & IIf(Right(sFileName, Len(sExpansion))​​ ДРУГОЙ ПАПКЕ, дабы​ как …».​в эту папку​ могу справиться: подскажите,пожалуйста,как​ в редакторе макросов:​

​ тот же макрос​​После этого макрос будет​ Вы можете создать​в раскрывающемся списке​ оригинал (на английском​ FileName = .FullName​ если считать не​ Topic_URL : http://www.planetaexcel.ru/forum.php?thread_id=16506​Alex_ST​ ВЫ так? Я​ что я их​

​ <> sExpansion, sExpansion,​​ не было конфликта​Оказалось очень удобно,​ кладете файл с​ правильно сохранить макрос,​ «File»-«Save Personal.xlsb», а​

​ в других файлах​ доступен при каждом​ макроса «Авто_открыть», чтобы​
​Тип файла​ языке) .​ Then MsgBox «Здесь​

planetaexcel.ru

Как макросом сохранить копию текущего файла?

​ удалось, значит путь​​ ‘ DateTime :​: Спасибо. Разобрался.​ ж еще в​
​ просто не успеваю​ «»)​ при совпадении имен.​ т.к. при этом​ макросом​ чтобы он работал​ потом закройте редактор​ рабочих книг, тогда​
​ открытии Excel.​ сделать это. Вы​
​выберите​Создать макрос в Excel​ нельзя сохранить файл​ ранее не задавался​ 08.02.12, 12:00 ‘​Только чтобы всё​ начале писал -​ читать…​If sFileName =​ThisWorkbook.Password = «»​ текущий открытый файл​при открытии экселя​
​ не только с​
​ Visual Basic.​ можно сохранить его​Чтобы было проще вспомнить,​ также можете запускайте​Книга Excel с поддержкой​ можно, запустив средство​ под таким именем!»,​ и он для​ Purpose : Сохранение​ правильно работало нужно​ «Вы сначала задаете​Ща буду разбираться…​ ThisWorkbook.FullName Then​
​Alex_ST​ не закрывается, а​ этот файл будет​ «Эта Книга», а​​
​ в личной книге​ что делает макрос,​ макрос автоматически при​ макросов​ записи макросов или​ 16, «Ошибка»: GoTo​ первого раза задаётся​ копии активного файла​ не атрибуты файла​ книге пароль, затем​
​ Беру тайм-аут на​MsgBox «Нельзя сохранить​: Метод SaveCopyAs требует​ просто его копия​ самостоятельно открываться.​ для любых файлов​
​Теперь у вас подключена​ макросов. У нее​ введите его описание​ открытии книги.​.​
​ с помощью редактора​ REPEAT_ sDirPath =​ равным ActiveWorkbook.Path sDirPath​

​ ‘ Notes :​​ через​
​ сохраняете, затем убираете​
​ осмысливание.​
​ файл под имененм​
​ непосредственного указания пути​
​ сохраняется в указанном​
​Alex_ST​
​ xls. На форуме​
​ скрытая книга для​
​ всегда одно название​
​ в поле​
​Прежде чем начать, убедитесь,​Нажмите кнопку​ Visual Basic для​ Left(FileName, InStrRev(FileName, «»))​ = Mid(sDirPath, 3,​

​ Путь сохранения копий​​SetAttr ActiveWorkbook.FullName, vbReadOnly​ пароль.​

​Скорее всего до​​ открытого файла!», vbCritical​
​ и имени сохранения,​ месте с указанными​: По работе на​ нашла,что надо сохранять​ хранения макросов, к​ – Personal.xlsb. Она​
​Описание​

​ что на ленте​​Сохранить​ приложений (VBA). После​ ‘ путь к​ Len(sDirPath) — 3)​ хранится в коллекции​ устанавливать, т.к. это​Тоже самое можно​ завтра, т.к.у нас​ + vbYesNo, «Ошибка»​

​ а хотелось бы​​ свойствами (всё это​ своём компе создаю/модернизирую/заполняю​ в Личной книге​ которым можно получить​ всегда открывается при​. Можно также оставить​ доступна вкладка​

​.​​ создания макроса следует​ папке сохранения копий​
​ ‘ убрать из​ .Names книги (в​ ничего не даёт​ сделать и с​ на работе сегодня​GoTo BEGIN_​ по вызову макроса​
​ задаётся в стандартных​

​ разные таблицы.​​ макросов, но когда​ доступ из любой​ запуске программы Excel,​

​ это поле пустым.​Разработчик​Чтобы макросы были доступны​
​ сохранить его для​
​ без имени файла​
​ считанного значения в​ именованном диапазоне) ‘—————————————————————————————​ , а​
​ другими атрибутами(только чтение​
​ отмечается «День Корпорации»​End If​ выйти на стандартное​

​ виндовых окнах).​По окончании какого-нибудь​ пытаюсь это сделать​ другой рабочей книги.​
​ только скрыто. Данная​Нажмите кнопку​
​. Если ее нет,​ при каждом запуске​ возможности повторного использования​ .Names(sPath_in_Names).Value = sDirPath​
​ начале «= и​
​ Const sPath_in_Names =​
​ActiveWorkbook.Password = «ххх»​
​ через GetAttr например).»​
​ (ввиду кризиса -​

​ThisWorkbook.Password = «1»​​ окно выбора пути​Вот и подумал,​ этапа КОПИЮ таблицы​ выдает ошибку:»Личн.кн.макр.в папке​ Личная книга макросов​ книга не является​

​ОК​ выполните указанные ниже​ Excel, создайте их​ в текущей или​

​ ‘ запомнить выбранный​​ в конце «​ «Path4SaveCopyAs» ‘ имя​ задаёт пароль НА​Т.е. сначала Вы​ на рабочих местах,​ThisWorkbook.SaveCopyAs sFileName​ и имени сохранения​ а вдруг гуру​ надо выкладывать на​

​ автозагрузки должна оставаться​​ где находится находиться​ доступной по умолчанию​.​ действия.​ в книге «Personal.xlsb».​ в других книгах.​ в диалоге путь​ sDirPath = sDirPath​ элемента коллекции .Names,​ ОТКРЫТИЕ​

​ сохраняемой книги присваиваете​​ а не на​ThisWorkbook.Password = «»​ …​ форума посоветуют как​ общий диск с​ открытой-Запись невозможна»- Как​ в папке автозагрузки​
​ в Excel, поэтому​Откройте вкладку​Откройте вкладку​
​ Это скрытая книга​Если понадобится использовать макрос​ в коллекции .Names​ & IIf(Right(sDirPath, 1)​ в котором должен​Надо вот так:​ все эти атрибуты,​ природе), поэтому, прошу​The_Prist​Alex_ST​ можно сделать макрос,​ паролем на изменение​ это сделать? Проблема​

​ файлов Excel –​​ ее нужно сначала​
​Файл​Файл​ на вашем компьютере,​ только в той​
​ под именем sPath_in_Names​ = «», «»,​ храниться путь для​With ActiveWorkbook​

​ затем сохраняете, потом​​ пардону, с ответами​: Алекс, Вы хоть​: Да и к​ осуществляющий аналогичную вункцию​ (ну, просто для​ в том,что записав​ XLSTART: C:Documents and​ подключить.​, выберите пункт​

​и выберите пункт​​ которая открывается при​

​ книге, где он​​ bReadOnlyRecommended = .ReadOnlyRecommended​ «») ‘ на​ сохранения копий файла​
​.WritePassword = «1»​ убираете.​ немного торможу, хотя​

​ посмотрели, что я​​ тому же метод​ в Ёкселе?​ страховки одних пользователей​ макрос, я его​ SettingsUser_NameAppDataRoamingMicrosoftExcelXLSTARTPersonal.xlsb​Чтобы создать и схоронить​Открыть​Параметры​

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

​ Dim sSuff$: sSuff​.ReadOnlyRecommended = True​Dim sFileName As​ пока ещё вполне​ предложил? Вы сначала​

​ SaveCopyAs не предполагает​Очевидно, что макрос​ от действий других…).​
​ правила в VBA,какое-то​
​Примечание. XLSTART – это​
​ код в личной​и выберите файлы,​, а затем —​
​ Для получения сведений​
​ кнопку​ исходного файла .ReadOnlyRecommended​ имя было задано​

​ = » [«​.SaveCopyAs sFileName​ String, sExpansion As​ адекватен, но что​
​ задаете книге пароль,​ задания опций сохранения​
​ (ну, например, Save_Copy_As)​Конечно, можно воспользоваться​ время он работал,​ папка для автозагрузки​
​ книге макросов:​
​ с которыми работаете​
​ категорию​ о выполнении этих​
​Сохранить​
​ = —(MsgBox(«Рекомендовать открывать​ в ручную и​

​ & Format(Now, «yyyy/mm/dd​​.WritePassword = «»​

​ String​ будет дальше …​ затем сохраняете, затем​

​ (пароль, предложение открыть​​ должен лежать в​
​ стандартными средствами:​ а потом исчез…​ файлов вместе с​Выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Запись макроса».​
​ каждый день. Они​Настроить ленту​ действий см. статью​или​
​ файл только для​ при этом не​ hh-mm’ss»») & «]»​

​.ReadOnlyRecommended = False​
​BEGIN_:​
​Alex_ST​
​ убираете пароль.​
​ только для чтения​
​ личной книге макросов​
​- открыть папку​
​ Теперь, я его​

​ запуском программы Excel.​В появившемся диалоговом окне​ могут находиться в​

​.​​ Создание и сохранение​Сохранить как​ чтения?», 36) -​ верно — без​ ‘ суффикс к​End With​sFileName = ThisWorkbook.Name​
​: The_Prist,спасибо!​Тоже самое можно​ и т.п.)​
​ (Personal.xls)…​ назначения, скопировать (drag​ вставляю через редактор​ Если сохранить файл​ «Запись макроса», из​ разных местах. Чтобы​
​В разделе​ всех макросов в​
​так же, как​ 7) ‘ MsgBox​ слэша) .Names(sPath_in_Names).Value =​ имени файла копии​Если кому-нибудь интересно,​sExpansion = Right(sFileName,​Всё отлично работает.​ сделать и с​tolikt​А вот как​ & drop’ ом)​ VBA,он отрабатывает для​ в данную папку,​ выпадающего списка «Сохранить​ выбрать несколько файлов​Настройка ленты​ одной книге.​ при обычном сохранении.​ Argument 4==vbYesNo 32==vbQuestion,​ sDirPath ‘ запомнить​ — дата и​ то «причёсанный» вариант​ Len(sFileName) — InStrRev(sFileName,​ Завтра «дополирую» диалогами​ другими атрибутами(только чтение​: Наверное, я что-то​ «Сохранить как…», не​ туда файл, открыть​ открытого файла, закрываю​ то он будет​ в:» выберите опцию​ в одной папке,​в поле​Примечание:​ Но сохранение книги​ MsgBox Return Values:​ путь сохранения копий​ время сохренения копии​ — в файле.​ «.») + 1)​ для задания пассворда​ через GetAttr например).​ не понял…​ закрывая текущего файла?​ его и поставить​ Excel,через некот.время открываю​ открываться вместе с​ «Личная книга макросов».​ щелкните каждый из​Основные вкладки​Мы стараемся как​ с макросами происходит​ vbYes=6, vbNo=7 .SaveCopyAs​ в коллекции .Names​ файла Dim FileName,​Alex_ST​sFileName = Application.GetSaveAsFilename​ …​Alex_ST​Т.к. думал, что​Alex_ST​ пароль на открытие…​ Excel, а макроса​ программой Excel. Для​ И нажмите на​ них, удерживая нажатой​установите флажок​ можно оперативнее обеспечивать​ несколько иначе, поскольку​ FileName .ReadOnlyRecommended =​ под именем sPath_in_Names​ sExp$, sDirPath$, sFullFilePath$,​: Приходится у себя​If sFileName =​А как бы​: Я, конечно, естественно,​ пользователь класса Alex_ST​: Сразу оговариваю:​ Но уж больно​ там нет!?…​ версий старше 2007​ кнопку OK.​ клавишу SHIFT.​Разработчик​ вас актуальными справочными​ необходимо использовать специальный​ bReadOnlyRecommended ‘ восстановить​ sFullFilePath = sDirPath​ sNewPath$ Dim bReadOnlyRecommended​ на компе вести​ «False» Then Exit​ при сохранении копии​ смогу сделать InputBox​ уж сумеет как-то​макросы типа​ это не удобно,​Guest​ путь к папке​Теперь выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Остановить​Откройте вкладку​.​ материалами на вашем​ формат файла «с​ параметры исходного файла​ & FileName ‘​ As Boolean With​ несколько учётных файлов,​ Sub​ задавать «Рекомендовать открытие​ для задания пути​ в макросе подогнать​Sub Save_File_As()​ т.к. надо после​: А если выбрать​ автозагрузки будет следующим:​ запись».​Разработчик​Нажмите кнопку​ языке. Эта страница​ поддержкой макросов». Поэтому​ End With End​ полный путь сохранения​ ActiveWorkbook FileName =​ а их копии​sFileName = sFileName​ только для чтения?»​ для SaveCopyAs, но,​ под себя SaveCopyAs​ActiveWorkbook.SaveAs _​ копирования закрыть свой​ «Все открытые книги»?​ C:Program FilesMicrosoft OfficeOffice12Xlstart.​Откройте редактор Visual Basic:​и нажмите кнопку​ОК​ переведена автоматически, поэтому​ при попытке сохранить​ Sub​ вместе с полным​

planetaexcel.ru

​ .Name ‘ например,​

Создание, расположение, удаление и добавление Личной книги макросов (PERSONAL.XLSB), предназначенной в Excel для записи, хранения и вызова процедур.

Личная книга макросов

Личная (персональная) книга макросов – это скрытая служебная книга Excel с именем PERSONAL.XLSB, предназначенная для записи и хранения программного кода (функций и подпрограмм) и предоставления доступа к нему из всех открытых рабочих книг.

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

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

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

Подпрограммы, размещенные в Личной книге макросов, можно просмотреть в окне «Список макросов», открыв его из любой рабочей книги Excel. Они будут перечислены с приставкой «PERSONAL.XLSB!». Функции в этом окне не отображаются.

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

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

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

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

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

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

Создание

Изначально Личная книга макросов в приложении Excel отсутствует. Чтобы проверить, есть ли она в вашей программе (не создал ли ее кто-то ранее), откройте любую рабочую книгу и перейдите в редактор VBA, нажав сочетание клавиш «Alt+F11» (в этом сочетании используется левая клавиша Alt). Открыть редактор VBA можно и пройдя по пунктам меню:

Excel 2007-2016: «Разработчик» –> «Visual Basic» (смотрите, как отобразить вкладку «Разработчик», которая изначально скрыта);

Excel 2000-2003: «Сервис» –> «Макрос» –> «Редактор Visual Basic».

Откроется редактор VBA:

Проводник в редакторе VBA Excel

Проводник в редакторе VBA

Если в проводнике сверху вы видите строку «VBAProject (PERSONAL.XLSB)», значит Личная книга макросов на вашем компьютере уже есть.

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

 Сохранение макроса в Личной книге макросов

Сохранение макроса в Личной книге макросов

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

Расположение

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

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

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

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

Личная книга макросов в папке XLSTART

Личная книга макросов в папке XLSTART

Удаление

Если вы хотите удалить Личную книгу макросов из своего приложения Excel, найдите с помощью поиска в проводнике папку XLSTART и удалите из нее файл PERSONAL.XLSB.

В принципе, наличие неиспользуемой Персональной книги макросов ничем не мешает. Но если не вы ее создавали и вас беспокоит наличие в ней чужого кода, можете удалить из нее в редакторе VBA все стандартные модули и очистить от процедур модули книги (по умолчанию «ЭтаКнига») и листа (по умолчанию «Лист1»).

Добавление

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

В этом случае можно попытаться найти с помощью поиска в проводнике папку XLSTART и, если она будет найдена, вставить в нее пустой файл PERSONAL.XLSB. В данном случае «пустой» означает «без пользовательских процедур (макросов)».

Скачать архив с пустым файлом PERSONAL.XLSB (создан в Excel 2016).

После добавления файла PERSONAL.XLSB в папку XLSTART и перезагрузки приложения Excel, Личная книга макросов появится в проводнике редактора VBA. Перезагрузка Excel заключается в закрытии всех открытых рабочих книг и последующем открытии любого файла этой программы.

В некоторых случаях вам может понадобиться использовать один макрос VBA несколько раз в будущем. Это возможно сохраните как-нибудь модуль VBA в любой новый документ чтобы он был доступен во всех книгах? Ответ положительный. В этом уроке мы познакомим вас с простым способом достижения вашей цели.
doc save-use-vba-macros-in-all-workbooks 1

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


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

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

1. нажмите Alt + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули и вставьте следующий макрос в окно модуля.

Код VBA: преобразование чисел в слова

Function NumberstoWords(ByVal MyNumber)
'Update by Extendoffice
Dim xStr As String
Dim xFNum As Integer
Dim xStrPoint
Dim xStrNumber
Dim xPoint As String
Dim xNumber As String
Dim xP() As Variant
Dim xDP
Dim xCnt As Integer
Dim xResult, xT As String
Dim xLen As Integer
On Error Resume Next
xP = Array("", "Thousand ", "Million ", "Billion ", "Trillion ", " ", " ", " ", " ")
xNumber = Trim(Str(MyNumber))
xDP = InStr(xNumber, ".")
xPoint = ""
xStrNumber = ""
If xDP > 0 Then
xPoint = " point "
xStr = Mid(xNumber, xDP + 1)
xStrPoint = Left(xStr, Len(xNumber) - xDP)
For xFNum = 1 To Len(xStrPoint)
xStr = Mid(xStrPoint, xFNum, 1)
xPoint = xPoint & GetDigits(xStr) & " "
Next xFNum
xNumber = Trim(Left(xNumber, xDP - 1))
End If
xCnt = 0
xResult = ""
xT = ""
xLen = 0
xLen = Int(Len(Str(xNumber)) / 3)
If (Len(Str(xNumber)) Mod 3) = 0 Then xLen = xLen - 1
Do While xNumber <> ""
If xLen = xCnt Then
xT = GetHundredsDigits(Right(xNumber, 3), False)
Else
If xCnt = 0 Then
xT = GetHundredsDigits(Right(xNumber, 3), True)
Else
xT = GetHundredsDigits(Right(xNumber, 3), False)
End If
End If
If xT <> "" Then
xResult = xT & xP(xCnt) & xResult
End If
If Len(xNumber) > 3 Then
xNumber = Left(xNumber, Len(xNumber) - 3)
Else
xNumber = ""
End If
xCnt = xCnt + 1
Loop
xResult = xResult & xPoint
NumberstoWords = xResult
End Function
Function GetHundredsDigits(xHDgt, xB As Boolean)
Dim xRStr As String
Dim xStrNum As String
Dim xStr As String
Dim xI As Integer
Dim xBB As Boolean
xStrNum = xHDgt
xRStr = ""
On Error Resume Next
xBB = True
If Val(xStrNum) = 0 Then Exit Function
xStrNum = Right("000" & xStrNum, 3)
xStr = Mid(xStrNum, 1, 1)
If xStr <> "0" Then
xRStr = GetDigits(Mid(xStrNum, 1, 1)) & "Hundred "
Else
If xB Then
xRStr = "and "
xBB = False
Else
xRStr = " "
xBB = False
End If
End If
If Mid(xStrNum, 2, 2) <> "00" Then
xRStr = xRStr & GetTenDigits(Mid(xStrNum, 2, 2), xBB)
End If
GetHundredsDigits = xRStr
End Function
Function GetTenDigits(xTDgt, xB As Boolean)
Dim xStr As String
Dim xI As Integer
Dim xArr_1() As Variant
Dim xArr_2() As Variant
Dim xT As Boolean
xArr_1 = Array("Ten ", "Eleven ", "Twelve ", "Thirteen ", "Fourteen ", "Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen ")
xArr_2 = Array("", "", "Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ", "Seventy ", "Eighty ", "Ninety ")
xStr = ""
xT = True
On Error Resume Next
If Val(Left(xTDgt, 1)) = 1 Then
xI = Val(Right(xTDgt, 1))
If xB Then xStr = "and "
xStr = xStr & xArr_1(xI)
Else
xI = Val(Left(xTDgt, 1))
If Val(Left(xTDgt, 1)) > 1 Then
If xB Then xStr = "and "
xStr = xStr & xArr_2(Val(Left(xTDgt, 1)))
xT = False
End If
If xStr = "" Then
If xB Then
xStr = "and "
End If
End If
If Right(xTDgt, 1) <> "0" Then
xStr = xStr & GetDigits(Right(xTDgt, 1))
End If
End If
GetTenDigits = xStr
End Function
Function GetDigits(xDgt)
Dim xStr As String
Dim xArr_1() As Variant
xArr_1 = Array("Zero ", "One ", "Two ", "Three ", "Four ", "Five ", "Six ", "Seven ", "Eight ", "Nine ")
xStr = ""
On Error Resume Next
xStr = xArr_1(Val(xDgt))
GetDigits = xStr
End Function

3. Нажмите Сохраните значок в верхнем левом углу ленты или нажмите Ctrl + S для открытия Сохранить как окно.doc save-use-vba-macros-in-all-workbooks 2

4. в Сохранить как введите имя книги в поле Имя файла коробка. И выберите Надстройка Excel (*.xlam) вариант в Сохранить как выпадающий список.
doc save-use-vba-macros-in-all-workbooks 3

5. Затем нажмите Сохраните кнопку, чтобы сохранить книгу с кодом VBA в качестве Надстройка Excel.
doc save-use-vba-macros-in-all-workbooks 4

6. Вернемся к Excel, закройте пустую книгу, которая была сохранена как надстройка Excel.

7. Откройте новую книгу с данными, которые необходимо преобразовать. Введите формулу = Число слов (A2) в ячейке В2. # ИМЯ? будет возвращено значение ошибки, поскольку код VBA еще не был применен во всех книгах.
doc save-use-vba-macros-in-all-workbooks 5

8. К Застройщик вкладку нажмите Надстройки Excel в Надстройки группа.
doc save-use-vba-macros-in-all-workbooks 6

9. Добавить в всплывает диалоговое окно. Щелкните значок Приложения кнопку.
doc save-use-vba-macros-in-all-workbooks 7

10. Выберите надстройку, которую вы только что сохранили, затем нажмите OK кнопку.
doc save-use-vba-macros-in-all-workbooks 8

11. Затем Надстройка «Преобразование чисел в слова» настроенный вами вставлен и включен. Нажмите на OK кнопку, чтобы завершить настройку.
doc save-use-vba-macros-in-all-workbooks 9

12. Теперь при вводе формулы = Число слов (A2) в ячейке B2 и нажмите кнопку Enter ключ, будут возвращены соответствующие английские слова. Перетащите маркер автозаполнения вниз, чтобы получить все результаты.
doc save-use-vba-macros-in-all-workbooks 10

Заметки:

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

  1. Вы можете добавить код в Быстрая панель инструментов и запускайте код каждый раз, когда на панели инструментов нажимается кнопка кода.
    doc save-use-vba-macros-in-all-workbooks 11
  2. Вы также можете напрямую нажать Alt + F11 чтобы открыть окно операции с кодом, найдите код и нажмите F5 бежать.

Прочие операции (статьи)

Код VBA для отображения всех надстроек в Excel
В Excel вы можете добавлять или вставлять надстройки для более удобной работы с данными. Как мы знаем, мы можем перейти в окно «Параметры», чтобы просмотреть все надстройки, но есть ли способ перечислить все надстройки на листе? Теперь в этом руководстве он предоставляет код VBA для перечисления всех надстроек в Excel.

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

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


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы и хранение данных; Разделить содержимое ячеек; Объедините повторяющиеся строки и сумму / среднее значение… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Избранные и быстро вставляйте формулы, Диапазоны, диаграммы и изображения; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Группировка сводной таблицы по номер недели, день недели и другое … Показать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки, у которых есть формула / имя

вкладка kte 201905


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

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

При открытии Excel у вас открывается файл под названием Personal.*? Что же это все-таки такое? Файл Personal хранит данные о предыдущих заходах в Excel. С помощью него очень удобно запомнить макрос или формат для всех книг.

Файл Personal

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

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

Содержание

  • Файл Personal. Где найти?
  • Как удалить файл из персональной книги макросов?
  • Запись макроса для всех книг с помощью Personal
  • Почему при заходе в Excel открывается файл?
  • Похожие статьи

Файл Personal. Где найти?

Давайте сперва разберемся, куда он сохраняется.

По умолчанию папки хранения хранятся:
Microsoft Office 2003

  • C:Program FilesMicrosoft OfficeOffice11STARTUP или
  • C:Documents and SettingsYour_User_NameApplication DataMicrosoftWordSTARTUP

Microsoft Office 2007

  • C:Program FilesMicrosoft OfficeOffice12STARTUP или
  • C:Documents and SettingsYour_User_NameApplication DataMicrosoftWordSTARTUP

Как удалить файл из персональной книги макросов?

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

В левом верхнем углу пройдите в меню Упорядочить

Персонал2

Выбирайте Параметры папок — вкладка Вид — Показывать скрытые файлы

Персонал3

Теперь переходим в указанные выше папки и удаляем файл в папке AppData — все просто ;)

Запись макроса для всех книг с помощью Personal

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

К примеру, запишем макрос или создадим его макрорекордером. На тему как записать макрос есть отдельная статья. В открывшемся окне  находите в поле Сохранить в: «Личная книга макросов» и нажимаете ОК. Личная книга макросов = файл Personal.

Персонал4

Теперь сохраняете файл в формате *.xlsm или *.xlsb . В указанных выше папках при каждом открытии будет сохраняться новый файл Personal

Почему при заходе в Excel открывается файл?

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

Автоматизация задач с помощью средства записи макросов — Excel

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

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

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

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

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».

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

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

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

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

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

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

На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.

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

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

Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш с CTRL+SHIFT, так как они будут заменять собой совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос. Например, если назначить сочетание клавиш CTRL+Z (Отменить), вы не сможете использовать его для функции «Отменить» в данном экземпляре Excel.

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

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

В поле Описание при необходимости введите краткое описание действий макроса.

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

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

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

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

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.

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

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

Сведения о параметрах безопасности макросов и их значении.

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

С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге.

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

Назначение макроса объекту, фигуре или графическому элементу

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

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

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

Вы можете назначать макросы формам и элементам ActiveX на листе.

Узнайте, как включать и отключать макросы в файлах Office.

Открытие редактора Visual Basic

Нажмите клавиши ALT+F11.

Узнайте, как найти справку по элементам Visual Basic.

Работа с записанным кодом в редакторе Visual Basic (VBE)

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

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

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

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

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

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

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

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

Перейдите в раздел настройки _гт_ Excel. панель инструментов _Гт_ ленты _амп_.

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

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

На вкладке Разработчик нажмите кнопку Запись макроса.

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

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

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

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

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

В поле Описание при необходимости введите краткое описание действий макроса.

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

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

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

На вкладке Разработчик щелкните Остановить запись.

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. При этом откроется диалоговое окно Макрос.

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

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

Макросы в excel 2016 для чайников с примерами

М акросы в Excel для начинающих

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

Итак, что такое макросы и как их писать?

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

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

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

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

Итак, объекты «встроены» друг в друга и имеют различные свойства. Познакомимся с ними поближе.

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

Workbook — рабочая книга Excel.

Действия с объектами

Activate — активировать, то есть, «поставить курсор». Активировать можно книгу, лист, ячейку.

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

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

И отдельно идет действие Paste — вставить. Если за всеми предыдущими действиями стоит слово «что?» (что активировать, что скопировать), то за словом вставить идет вопрос «куда?». Поэтому и при написании программы нужно указывать не что вставить, а куда вставить.

Кроме выполнения программ Excel может «отдавать информацию» по заданным командам. Вот несколько примеров таких команд:

Sheets.Count — выдает количество листов в книге.

Date — выдает сегодняшнюю дату в формате строки.

Len(«строка») — выдает длину строки в количестве символов. В этом примере длина равна 6.

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

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

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

И числа, и строки можно присваивать переменным.

Можно переопределять значения переменных, например, так:

После этого i=11, а s=»Привет, мир!».

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

s=», мир!» & s, то получим, s=», мир!Привет».

Так как переменная s уже хранит в себе кавычки, при её использовании не нужно заключать её в кавычки. Наоборот, именно отсутствие кавычек подскажет Excel’ю, что воспринимать её нужно как переменную, а не как текст. То есть, записи:

дадут одинаковый результат — присвоят переменной h значение «Привет, мир!»

присвоит переменной h значение «s».

Надо сказать, что объекты в Excel иногда пишут в единственном числе, иногда во множественном. Как запомнить, в каком случае что используется? Можно использовать такое правило: всё, чего в Excel’е много, пишется во множественном числе, всё, что в единственном экземпляре — в единственном. В Excel’е много книг, много листов и очень много ячеек. Все они одинаковы для Excel’я и отличить их можно только по имени или координатам. Поэтому в программе используется множественное число. Например:

Ячейки определяются по координатам: первая — номер строки, вторая — столбца.

поставит курсор в левую верхнюю ячейку.

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

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

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

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

скопирует верхняя левую ячейку на листе «Лист1», независимо от того, активен этот лист сейчас или нет.

После этого вы уже можете писать макросы 🙂

Но лучше прочитайте еще про циклы и условный оператор , а потом про то, что такое коллекции объектов и что они нам могут дать.

Руководство и примеры работы с макросами в Excel

Многие люди думают, что макросы в Excel – это очень трудно, но это не так. В этой статье Вы найдёте несколько интересных и простых примеров, как можно автоматизировать Ваши повседневные задачи в Excel. Макрос – это программа на Visual Basic, созданная для того, чтобы автоматизировать задачи в Microsoft Office. В своих примерах я использую Excel 2010, но с таким же успехом Вы можете использовать Excel 2007.

Создаем макрос при помощи команды «Запись макроса»

  1. Для начала откройте вкладку View (Вид) на Ленте. В выпадающем списке Macros (Макросы) нажмите кнопку Record Macro (Запись макроса).Откроется диалоговое окно Record Macro (Запись Макроса).

  • Задайте имя макросу (не допускаются пробелы и специальные символы), клавишу быстрого вызова, а также, где бы Вы хотели сохранить свой макрос. При желании, Вы можете добавить описание.
  • С этого момента макрос записывает действия. Например, Вы можете ввести слово “Hello” в ячейку A1.
  • Теперь снова нажмите иконку Macros (Макросы) и в раскрывшемся меню выберите Stop Recording (Остановить запись).
  • Доступ к записанному макросу можно получить с помощью команды View Macros (Макросы), которая находится на вкладке View (Вид) в выпадающем меню Macros (Макросы). Откроется диалоговое окно Macro (Макрос), в котором Вы сможете выбрать нужный. Дважды кликните по имени макроса, чтобы выполнить программу.

    Кроме этого, Вы можете связать макрос с кнопкой. Для этого:

    1. На вкладке File (Файл) нажмите Options (Параметры) >Quick Access Toolbar (Панель быстрого доступа).
    2. В поле Choose commands from (Выбрать команды из) выберите All Commands (Все команды).
    3. Найдите команду Option Button (Кнопка), нам нужна та, что относится к разделу Form Control (Элементы управления формы). Выделите ее и нажмите Add (Добавить). Затем нажмите ОК, чтобы закрыть параметры Excel.
    4. Выберите команду, только что добавленную на Панель быстрого доступа, и начертите контур кнопки на рабочем листе Excel.
    5. Назначьте макрос объекту.

    Примечание: Если у вас включена вкладка Developer (Разработчик), то получить доступ к элементам управления формы можно с нее. Для этого перейдите на вкладку Developer (Разработчик), нажмите на иконку Insert (Вставить) и из раскрывающегося меню выберите нужный элемент.

    Не знаете, как отобразить вкладку Developer (Разработчик)? Excel 2007: жмем на кнопку Office > Excel Options (Параметры Excel) > Popular (Основные) и ставим галочку напротив опции Show Developer tab in the Ribbon (Показывать вкладку “Разработчик” на ленте). Excel 2010: жмем по вкладке File (Файл) > Options (Параметры) > Customize Ribbon (Настройка ленты) и в правом списке включаем вкладку Developer (Разработчик).

    В следующем примере Вы увидите, как использовать цикл FOR. Цикл FOR позволяет нам выполнить повторение цикла с разными значениями. Давайте посмотрим, как можно заполнить числами от 1 до 5 ячейки A1:A5.

    Для этого на вкладке Developer (Разработчик) нажмите Visual Basic. Дважды кликните по объекту из списка Microsoft Excel Objects, в котором должен быть сохранён макрос. Введите вот такой код:

    Сохраните файл. Чтобы выполнить макрос, перейдите View > Macros > View Macros (Вид > Макросы > Макросы), выберите из списка название нужного макроса и нажмите Run (Выполнить).

    Следующий код отображает фразу “Hello World” в окне сообщений Windows.

    В следующем примере мы создаём сообщение с выбором Yes (Да) или No (Нет). Если выбрать вариант Yes (Да), то значение ячейки будет удалено.

    Давайте проверим этот код. Выделите ячейку и запустите макрос. Вам будет показано вот такое сообщение:

    Если Вы нажмёте Yes (Да), значение в выделенной ячейке будет удалено. А если No (Нет) – значение сохранится.

    Конструкция IF

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

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

    Когда Вы запустите макрос, цвет шрифта изменится на красный:

    При выполнении второго условия шрифт станет синим:

    Конструкция CASE

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

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

    Заключение

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

    Создание макросов в Microsoft Excel

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

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

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

    Вариант 1: Автоматическая запись макросов

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

    Когда все готово, приступаем к записи.

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

  • После этого все ваши действия в данной книге (файле) Excel будут записываться в макрос до тех пор, пока вы сами не остановите запись.
  • Для примера запишем простейшее арифметическое действие: сложение содержимого трех ячеек (=C4+C5+C6).

    Когда алгоритм был выполнен, щелкаем на кнопку «Остановить запись». Эта кнопка преобразовалась из кнопки «Запись макроса» после включения записи.

    Запуск макроса

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

      Кликаем в том же блоке инструментов «Код» по кнопке «Макросы» или жмем сочетание клавиш Alt + F8.

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

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

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

      Снова щелкаем на кнопку «Макросы». В открывшемся окне выбираем нужный и кликаем по кнопке «Изменить».

    Открывается «Microsoft Visual Basic» (VBE) – среда, где происходит их редактирование.

  • Запись каждого макроса начинается с команды Sub , а заканчивается командой End Sub . Сразу же после Sub указывается имя макроса. Оператор Range(«…»).Select указывает выбор ячейки. Например, при команде «Range(«C4»).Select» выбирается ячейка «C4». Оператор ActiveCell.FormulaR1C1 используется для записи действий в формулах и других расчетов.
  • Попытаемся немного изменить макрос, дописав выражение:

    Range(«C3»).Select
    ActiveCell.FormulaR1C1 = «11»
    Выражение ActiveCell.FormulaR1C1 = «=R[-3]C+R[-2]C+R[-1]C» заменим на ActiveCell.FormulaR1C1 = «= R[-4]C+R[-3]C+R[-2]C+R[-1]C» .

  • Закрываем редактор и запускаем макрос. Как видим, вследствие введенных нами изменений была добавлена дополнительная ячейка с данными. Она также была включена в расчет общей суммы.
  • В случае если макрос слишком большой, его выполнение может занять значительное время, но внесением ручного изменения в код мы можем ускорить процесс. Добавляем команду Application.ScreenUpdating = False . Она позволит сохранить вычислительные мощности, а значит, ускорить работу. Это достигается путем отказа от обновления экрана во время выполнения вычислительных действий. Чтобы возобновить обновление после выполнения макроса, в его конце пишем команду Application.ScreenUpdating = True .
  • Добавим также команду Application.Calculation = xlCalculationManual в начало кода, а в его конец дописываем Application.Calculation = xlCalculationAutomatic . Этим мы сначала отключаем автоматический пересчет результата после каждого изменения ячеек, а в конце макроса – включаем. Таким образом, Excel подсчитает результат только один раз, а не будет его постоянно пересчитывать, чем сэкономит время.

    Вариант 2: Написание кода макроса с нуля

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

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

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

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

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    Учимся работать с макросами в эксель, и программировать на VBA

    В 1982 году появился дедушка современного Exel. Это был фактически простой сумматор, позволяющий быстро и без ошибок сводить табличные расчёты по строкам и столбцам. Тогда ещё трудно было представить, что через тридцать лет он до неузнаваемости изменит представление об автоматизации обработки большинства экономических расчётов.

    Вводная часть – зачем нужны макросы

    С 1993 года в разработке приложений для компьютеров началась революция, когда был создан объединённый продукт Microsoft Office, где Exel стал играть одну из ключевых ролей. Именно в это время появляется мощное дополнение VBA, позволяющее автоматизировать задачи Exel. Табличный процессор получил возможность не только предоставлять удобный интерфейс для умного пересчёта ячеек, но и стал полноценным продуктом для решения прикладных задач.

    Рассмотрим на простых примерах как создавать программы. Автоматизация или программирование работы машины любит точные определения:

    • Работаем в приложении Office 365 для дома. При этом рассматриваются те возможности, которые не принципиальны при переходе на работу в расширенные версии. Например, для малого бизнеса, где наиболее полноценно раскрываются возможности табличного процессора и макросы excel 2010.
    • При описании будет использоваться интерфейс Exel 2016.
    • VBA, диалект предметно ориентированного языка Visual Basic применяемый при работе с приложениями Microsoft Office.
    • Макрос или макрокоманда — программный алгоритм действий, определённый пользователем. Кроме того, это понятие применяется для символьного имени книги-шаблона, в которой хранится код действий.
    • Используется только функциональность, предусмотренная базовым вариантом табличного процессора, использующего макросы для excel 2013.
    • Предполагается, что читатель знаком с возможностями табличного процессора, но никогда не использовал макрос в excel 2007.

    Рассмотрим, как создать макрос в excel 2007 на примере решения очень простой задачи:

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

    Задача — используя информацию кладовщиков (см. рис.1) сделать сводную таблицу за неделю. Посчитать общий вес поступившего цемента и по каждому кладовщику отдельно.

    Записываем первый свой макрос

    На странице «Сводный» делаем шаблон исходной таблицы (смотреть рисунок).

    Единственное, что надо знать для написания программы в excel — как включить макросы. По ряду существенных причин по умолчанию они отключены. На панели вкладок находим закладку «Вид» и активируем её. Если в базовой версии такой вкладки нет, то добавляем. На всплывающей панели активируем функцию «Макросы». Активируем кнопку «Запись Макроса». Теперь любое действие с таблицей будет фиксироваться и записываться в виде специальных кодов.

    Выбираем имя, например «Склад».

    • Назначаем сочетание клавиш, активирующих программу – «Ctrl +Я».
    • Выбираем сохранить в таблице – «Эта книга».
    • Описание – «Сортировка данных кладовщиков».
    • Подтверждаем клавишей OK (результат действий приведён на рис.).

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

    Используя стандартные операции и формулы заполняем шаблон (на рис. ниже приведена получившаяся форма).

    Завершаем запись. Теперь при всех изменениях исходных данных, нажатием клавиш «Ctrl +Я», будут меняться значения в таблице-шаблоне. Даже на очень простом примере видно, как написать макрос в excel 2007.

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

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

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

    Предостережения

    Формат статьи не позволяет раскрыть все возможности такого мощного инструмента как Макросы и тем более работы с кодами языка VBA, на котором прописываются все действия по работе с таблицами. Желающим использовать макросы в excel самоучитель Office 365, без сомнений, будет полезен. Там же можно найти примеры макросов excel. Здесь будут даны только некоторые наиболее общие понятия.

    Чтобы посмотреть VBA программный код в меню открывается вкладка «Вид» и активируется «Макросы». Появится новое окно где будут видны имена всех записанных макросов. Выбирается нужный и с помощью клика «Изменить» смотрим коды Visual Basic for Applications. При определённом опыте непосредственно в этом окне можно менять последовательность действий. Более того, наиболее сложные макросы пишутся именно в кодах VBA. Но это уже другая история. Отметит только, что средства языка позволяют автоматизировать расчёт таблиц и построение графиков любой сложности и последовательности. Экспортировать данные в Exel с документов различного формата, включая интернет-ресурсы.

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

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

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

    Понравилась статья? Поделить с друзьями:
  • Excel 2016 кодировка файла
  • Excel 2016 как сбросить все настройки
  • Excel 2016 как построить график функции
  • Excel 2016 как открыть файлы в разных окнах
  • Excel 2016 как открыть файлы в одном окне