Макрос что это такое для чайников


Как записать макрос в Excel? Пошаговая инструкция

Для начала немного о терминологии. 

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

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

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

Теперь давайте погрузимся и посмотрим, как записать макрос в Excel.

Отображение вкладки "Разработчик" в ленте меню

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

  1. Щелкните правой кнопкой мыши по любой из существующих вкладок на ленте и нажмите «Настроить ленту». Он откроет диалоговое окно «Параметры Excel».
  2. В диалоговом окне «Параметры Excel» у вас будут параметры «Настроить ленту». Справа на панели «Основные вкладки» установите флажок «Разработчик».
  3. Нажмите «ОК».

В результате на ленте меню появится вкладка "Разработчик"

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

Теперь давайте запишем очень простой макрос, который выбирает ячейку и вводит в нее текст, например "Excel".

Вот шаги для записи такого макроса:

  1. Перейдите на вкладку "Разработчик".
  2. В группе "Код" нажмите кнопку "Запись макроса". Откроется одноименное диалоговое окно.
  3. В диалоговом окне "Запись макроса" введите имя для своего макроса, например "ВводТекста". Есть несколько условий именования, которые необходимо соблюдать при назначении макроса. Например, вы не можете использовать пробелы между ними. Обычно я предпочитаю сохранять имена макросов как одно слово, с разными частями с заглавным первым алфавитом. Вы также можете использовать подчеркивание для разделения двух слов - например, "Ввод_текста".
  4. Если вы хотите, то можете задать сочетание клавиш. В этом случае мы будем использовать ярлык Ctrl + Shift + N. Помните, что сочетание, которое вы указываете, будет отменять любые существующие горячие клавиши в вашей книге. Например, если вы назначили сочетание Ctrl + S, вы не сможете использовать это для сохранения рабочей книги (вместо этого, каждый раз, когда вы его используете, он выполняет макрос).
  5. В поле "Сохранить в" убедитесь, что выбрана опция "Эта книга". Этот шаг гарантирует, что макрос является частью рабочей книги. Он будет там, когда вы сохраните его и снова откроете, или даже если вы поделитесь файлом с кем-то.
  6. Введите описание при необходимости. Обычно я этого не делаю, но если у вас много макросов, лучше указать, чтобы в будущем не забыть что делает макрос.
  7. Нажмите "ОК". Как только вы нажмете OK, Excel начнет записывать ваши действия. Вы можете увидеть кнопку "Остановить запись" на вкладке "Разработчик", которая указывает, что выполняется запить макроса.
  8. Выберите ячейку A2.
  9. Введите текст "Excel" (или вы можете использовать свое имя).
  10. Нажмите клавишу Enter. Вы попадете на ячейку A3.
  11. Нажмите кнопку "Остановить запись" на вкладке "Разработчик".

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

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

  1. Удалите текст в ячейке A2. Это нужно, чтобы проверить будет ли макрос вставлять текст в ячейку A2 или нет.
  2. Выберите любую ячейку - кроме A2. Это нужно проверить, выбирает ли макрос ячейку A2 или нет.
  3. Перейдите на вкладку "Разработчик".
  4. В группе "Код" нажмите кнопку "Макросы".
  5. В диалоговом окне "Макрос" щелкните макрос "ВводТекста".
  6. Нажмите кнопку "Выполнить".

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

Примечание. Вы также можете запустить макрос с помощью сочетания клавиш Ctrl + Shift + N (удерживайте клавиши Ctrl и Shift, а затем нажмите клавишу N). Это тот же самый ярлык, который мы назначили макросу при его записи.

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

Теперь перейдем к редактору кода и посмотрим что у нас получилось.

Вот шаги по открытию редактора VB в Excel:

  1. Перейдите на вкладку "Разработчик".
  2. В группе "Код" нажмите кнопку "Visual Basic".
     

Вы также можете использовать комбинацию клавиш Alt + F11 и перейти в редактор кода VBA.

Рассмотрим сам редактор кода. Далее коротко опишем интерфейс редактора.

  • Панель меню: содержит команды, которые можно использовать во время работы с редактором VB.
  • Панель инструментов - похожа на панель быстрого доступа в Excel. Вы можете добавить к ней дополнительные инструменты, которыми часто пользуетесь.
  • Окно проектов (Project Explorer) - здесь Excel перечисляет все книги и все объекты в каждой книге. Например, если у нас есть книга с 3 рабочими листами, она появится в Project Explorer. Здесь есть несколько дополнительных объектов, таких как модули, пользовательские формы и модули классов.
  • Окно кода - собственно сам код VBA размещается в этом окне. Для каждого объекта, указанного в проводнике проекта, есть окно кода, например, рабочие листы, книги, модули и т. д. В этом уроке мы увидим, что записанный макрос находится в окне кода модуля.
  • Окно свойств - вы можете увидеть свойства каждого объекта в этом окне. Я часто использую это окно для обозначения объектов или изменения их свойств. 
  • Immediate Window (окно предпросмотра) - На начальном этапе оно вам не пригодится. Оно полезно, когда вы хотите протестировать шаги или во время отладки. Он по умолчанию не отображается, и вы можете его отобразить, щелкнув вкладку «View» и выбрав опцию «Immediate Window».

Когда мы записали макрос "ВводТекста", в редакторе VB произошли следующие вещи:

  • Был добавлен новый модуль.
  • Макрос был записан с именем, которое мы указали - "ВводТекста"
  • В окне кода добавлена новая процедура.

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

 

Вот код, который записан макрорекодером:


 Sub ВводТекста()
 '
 ' ВводТекста Макрос
 '
 
 '
     Range("A2").Select
     ActiveCell.FormulaR1C1 = "Excel"
     Range("A3").Select
 End Sub
 

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

Теперь давайте пробежим по каждой строке кода и опишем что и зачем. 

Код начинается с Sub, за которым следует имя макроса и пустые круглые скобки. Sub - сокращение для подпрограммы. Каждая подпрограмма (также называемая процедурой) в VBA начинается с Sub и заканчивается End Sub.

  • Range("A2").Select - эта строка выбирает ячейку A2.
  • ActiveCell.FormulaR1C1 = «Excel» - эта строка вводит текст "Excel" в активной ячейке. Поскольку мы выбрали ячейку A2 в качестве первого шага, она становится нашей активной ячейкой.
  • Range("A3").Select - выбор ячейки A3. Это происходит, когда мы нажимаем клавишу Enter после ввода текста, результатом которого является выбор ячейки A3.

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

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

Абсолютная и относительная запись макроса

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

Если вы используете параметр относительной ссылки для записи макроса, VBA не будет привязываться к конкретному адресу ячейки. В этом случае программа будет "двигаться" относительно активной ячейки. Например, предположим, что вы уже выбрали ячейку A1, и вы начинаете запись макроса в режиме относительной ссылки. Теперь вы выбираете ячейку A2, вводите текст Excel и нажмите клавишу Enter. Теперь, если вы запустите этот макрос, он не вернется в ячейку A2, вместо этого он будет перемещаться относительно активной ячейки. Например, если выбрана ячейка B3, она переместится на B4, запишет текст "Excel" и затем перейдет к ячейке K5.

Теперь давайте запишем макрос в режиме относительных ссылок:

  1. Выберите ячейку A1.
  2. Перейдите на вкладку "Разработчик".
  3. В группе "Код" нажмите кнопку "Относительные ссылки". Он будет подсвечиваться, указывая, что он включен.
  4. Нажмите кнопку "Запись макроса".
  5. В диалоговом окне "Запись макроса" введите имя для своего макроса. Например,  имя "ОтносительныеСсылки".
  6. В опции "Сохранить в" выберите "Эта книга".
  7. Нажмите "ОК".
  8. Выберите ячейку A2.
  9. Введите текст "Excel" (или другой как вам нравится).
  10. Нажмите клавишу Enter. Курсор переместиться в ячейку A3.
  11. Нажмите кнопку "Остановить запись" на вкладке "Разработчик".

Макрос в режиме относительных ссылок будет сохранен.

Теперь сделайте следующее.

  1. Выберите любую ячейку (кроме A1).
  2. Перейдите на вкладку "Разработчик".
  3. В группе "Код" нажмите кнопку "Макросы".
  4. В диалоговом окне "Макрос" кликните на сохраненный макрос "ОтносительныеСсылки".
  5. Нажмите кнопку "Выполнить".

Как вы заметите, макрос записал текст "Excel" не в ячейки A2. Это произошло, потому что вы записали макрос в режиме относительной ссылки. Таким образом, курсор перемещается относительно активной ячейки. Например, если вы сделаете это, когда выбрана ячейка B3, она войдет в текст Excel - ячейка B4 и в конечном итоге выберет ячейку B5.

Вот код, который записал макрорекодер:


 Sub ОтносительныеСсылки()
 '
 ' ОтносительныеСсылки Макрос
 '
 
 '
     ActiveCell.Offset(1, 0).Range("A1").Select
     ActiveCell.FormulaR1C1 = "Excel"
     ActiveCell.Offset(1, 0).Range("A1").Select
 End Sub
 

Обратите внимание, что в коде нет ссылок на ячейки B3 или B4. Макрос использует Activecell для ссылки на текущую ячейку и смещение относительно этой ячейки.

Не обращайте внимание на часть кода Range(«A1»). Это один из тех случаев, когда макрорекодер добавляет ненужный код, который не имеет никакой цели и может быть удален. Без него код будет работать отлично.

Что нельзя сделать с помощью макрорекодера?

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

  • Вы не можете выполнить код без выбора объекта. Например, если вы хотите, чтобы макрос перешел на следующий рабочий лист и выделил все заполненные ячейки в столбце A, не выходя из текущей рабочей таблицы, макрорекодер не сможет этого сделать. В таких случаях вам нужно вручную редактировать код.
  • Вы не можете создать пользовательскую функцию с помощью макрорекордера. С помощью VBA вы можете создавать пользовательские функции, которые можно использовать на рабочем листе в качестве обычных функций.
  • Вы не можете создавать циклы с помощью макрорекордера. Но можете записать одно действие, а цикл добавить вручную в редакторе кода. 
  • Вы не можете анализировать условия: вы можете проверить условия в коде с помощью макрорекордера. Если вы пишете код VBA вручную, вы можете использовать операторы IF Then Else для анализа условия и запуска кода, если true (или другой код, если false).

Расширение файлов Excel, которые содержат макросы

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

До Excel 2007 был достаточен один формат файла - .xls. Но с 2007 года .xlsx был представлен как стандартное расширение файла. Файлы, сохраненные как .xlsx, не могут содержать в себе макрос. Поэтому, если у вас есть файл с расширением .xlsx, и вы записываете / записываете макрос и сохраняете его, он будет предупреждать вас о сохранении его в формате с поддержкой макросов и покажет вам следующее диалоговое окно:

Если вы выберете "Нет", Excel сохранить файл в формате с поддержкой макросов. Но если вы нажмете "Да", Excel автоматически удалит весь код из вашей книги и сохранит файл как книгу в формате .xlsx. Поэтому, если в вашей книге есть макрос, вам нужно сохранить его в формате .xlsm, чтобы сохранить этот макрос.

Как работают макросы. VBA для чайников

Как работают макросы

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

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

В VBA-приложениях, не имеющих средства записи макросов, термин макрос может означать любую созданную вами VBA-программу. Например, в Visio версий 4.5 и 5 указание создать макрос открывает окно создания новой программы в редакторе Visual Basic. С другой стороны, как минимум в одном из основных VBA приложений - в Access - макрос вообще напрямую никак не связывается с VBA.

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

Макрос- это просто еще одно название для VBA-программы. Средство записи макросов во время своей работы конвертирует каждую из используемых вами команд в соответствующие строки программного кода VBA. Законченный макрос сохраняется как процедура VBA. Процедуры, как разъясняется Б главе 6, - это отдельные единицы программного кода VBA, которые можно вызвать по имени для выполнения. (Если уж говорить совсем строго, то макрос представляет собой процедуру типа Sub, не имеющую аргументов. Вам нужна именно такая строгость?)

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

Когда следует записывать макрос

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

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

Поделитесь на страничке

Следующая глава >

Автоматизация задач с помощью средства записи макросов — 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 для ее отправки по электронной почте.

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

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

    -ИЛИ-

    Нажмите ALT+T+M+R.

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

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

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

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

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

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

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

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

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

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

    -ИЛИ-

    Нажмите ALT+T+M+R.

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

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

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

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

Задача

Описание

Изменение параметров безопасности макросов в Excel

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

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

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

Изменение макроса

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

Копирование модуля макроса в другую книгу

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

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

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

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

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

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

Назначение макроса для элемента управления на листе

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

Включение и отключение макросов в файлах Office

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

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

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

Поиск справки по использованию редактора Visual Basic

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

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

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

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

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

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

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

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

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

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

  1. Перейдите в раздел настройки > Excel...Панель инструментов & > ленты.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задача

Описание

Включение и отключение макросов

Узнайте, как включать и отключать макросы в Excel для Mac.

Копирование модуля макроса в другую книгу

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

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

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

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

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

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

Назначение макроса для элемента управления на листе

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

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

На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic.

Поиск справки по использованию редактора Visual Basic

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

не в сети 13 часов

admin

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

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

Приветствую на Fast-Wolker.ru!! В  сегодняшнем выпуске продолжим знакомство с созданием макросов уже  в приложении Microsoft Office Word. Все знакомы с ним; многим приходится набирать документы в этой программе. Документы чаще всего имеют одну и ту же структуру — мы берем шаблон правим его так как нам надо в одних и тех же местах — меняем даты,  имена, форматируем текст.

То есть мы каждый раз делаем одни и те же операции с текстом, и чтобы их не делать каждый раз — можно  заставить компьютер совершать их автоматически. Для этого в МS Word можно применять макрокоманды (или макросы) которые вы самостоятельно записываете в виде программы на языке VBA, который встроен в Word.

Что такое включенные макросы в Ворд?

А сейчас разберемся подробно, что за «макросы», как их включать. Начнем изучение на примере Office Word 2007, так как для многих он по прежнему остается самым привычным пакетом. Включать макросы нужно через меню «Файл» -«Параметры Word».

Дело в том, что настройки макросов в программе по умолчанию выключены, либо заданы такие настройки безопасности, что работать с  полноценно с макрокомандами Вы не сможете. Когда Вы создаете макросы, Вы по сути становитесь программистом. Можно не только самому их писать, но и находить уже готовые. Среда VBA позволяет работать не только в пределах MS OFFICE. Можно создавать полноценные  программы, которые  получают доступ системным файлам на компьютере,  можно нанести вред. Этим пользуются злоумышленники.

Включаем первую настройку на ленте. Она сделает видимой вкладку «Разработчик» и позволит работать с макрокомандами и запускать редактор VBA:

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

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

Сторонние макрокоманды и проекты VBA перед запуском всегда проверяйте на вирусы!

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

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

Что такое макросы в  Ворде и как с ними работать?

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

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

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

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

Но чаще всего мы используем макросы на работе при составлении документов. Нужно форматировать текст, менять его размер, менять даты, имена на другие. Это ответственно и занимает время. И здесь наши  знания могут очень пригодится. Для начала покажу демонстрационный пример — как работает макрос. У нас есть шаблон договора, который нужно подготовить для заполнения. Задача: открыть документ, убрать ненужные нам элементы из текста автоматически:

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

Указываем имя нашего макроса (без пробелов),  доступ делаю из шаблона Normal.doth. Такой выбор позволит запускать выполнение нашей макрокоманды из любого документа Word. Назначать макрос можно кнопке на панели инструментов или вызвать нажатием сочетания определенный клавиш, но мы этого делать пока не будем. Просто нажмем на «OK» и начнется запись наших действий. Предлагаю посмотреть на видео, что получилось, это будет нагляднее.

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

Что такое макрос в ворде 2007? Формула из Excel таблицы

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

Далее,  «рисуем»  таблицу так, как мы делаем это в Excel:

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

Можно попробовать записать создание таблицы в макрос любым из этих способов и посмотреть что получится. Лично я таблицы копирую прямо из Excel, а макросы записываю в Office 2016 — там мне удобнее работать со стилями и оформлением. Удачи в освоении программы!

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

не в сети 13 часов

admin

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

Запуск и создание макросов в Excel для чайников

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

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

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

Что такое макросы в Excel и Word, как их включить, выключить, использовать

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

Использование в Microsoft Office Word

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

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

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

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

  1. Минимизируйте использование горячих клавиш при записи
  2. Текст можно выделять только клавиатурой
  3. Запись можно приостанавливать, дабы исключить лишние действия.
  4. Эти программы работают только в специальном типе документов, если не определено иное.
  5. Указание сочетания «горячих клавиш» сбрасывает их функцию по умолчанию.

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

А вот и текст, который будет вставлять таблицу 4*2 в документ при нажатии определённого сочетания кнопок:

Просмотреть и изменить данный текст, можно нажав на изменить в окне «Макросы».

Microsoft Office Excel

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

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

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

Читайте также:

Что такое макрос и где его искать?

Хитрости » 1 Май 2011       Дмитрий       398254 просмотров


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

  Tips_Macro_Basic_Video.xls (63,5 KiB, 3 243 скачиваний)


Наверное, многие слышали это слово "макрос", но не все имеют точное представление что это, если заглянули на эту страничку.
Макрос - это макрокоманда(так звучит в правильном переводе с англ.языка), содержащая последовательность действий, записанных пользователем. Запись производится с помощью встроенного в пакет Microsoft Office языка программирования - Visual Basic for Application(VBA).

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


 
ПОДГОТОВКА К ЗАПИСИ МАКРОСА
Прежде чем начать работать с макросами необходимо разрешить их выполнение, т.к. по умолчанию они отключены. Для этого необходимо сделать следующее:

  • Excel 2003:
    Сервис-Безопасность-Уровень макросов "Низкий"
  • Excel 2007:
    Кнопка Офис-Параметры Excel (Excel Options)-Центр управления безопасностью (Trust Centr)-Параметры центра управления безопасностью (Trust Centr Settings)-Параметры макросов (Macro Settings)-Разрешить все макросы (Enable All Macros)
  • Excel 2010:
    Файл (File)-Параметры (Options)-Центр управления безопасностью (Trust Centr)-Параметры центра управления безопасностью (Trust Centr Settings)-Параметры макросов (Macro Settings)-Разрешить все макросы (Enable All Macros)
  • После изменения параметров безопасности макросов необходимо перезапустить приложение Excel: закрыть его полностью и открыть заново. Только после этого изменения вступят в силу.

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

  • Макрорекордер записывает АБСОЛЮТНО ВСЕ ваши действия – ошибки, прокручивание экрана, переключение между листами, выделение ячеек и т.д. Поэтому перед записью своих действий необходимо сначала тщательно продумать все свои действия, чтобы в дальнейшем записать только то, что действительно необходимо записать и в дальнейшем воспроизвести. Это сократит как сам код, так и время его выполнения
  • Макрорекордер записывает действия выполненные только в пределах Microsoft Excel. Если вы переключитесь в другое приложение – действия в этой программе записаны не будут. Если закроете Excel – запись прекратится
  • Макрорекордер может записать только те действия, которые можно проделать вручную(те, которые доступны для выполнения из меню и с панелей)
  • Если во время кода вы совершили ошибочное действие и нажали кнопку отмены(Ctrl+Z) – отмененное действие не будет записано в макрос, как будто вы его просто не делали


 
ЗАПИСЬ МАКРОСА
Для пользователей Excel 2003 запись макроса возможна через меню:
Сервис -Макрос -Начать Запись

Для пользователей Excel 2007-2010 и старше:


 
ПАРАМЕТРЫ ЗАПИСИ МАКРОСА
Перед записью можно задать имя записываемому макросу и назначить сочетание клавиш, при нажатии которых этот макрос будет запускаться. После нажатия кнопки для начала записи макроса появится окно:

Имя макроса – не должно содержать пробелов, запятых, двоеточий и т.п. Допустимы символы кириллицы, латиницы, цифры и нижнее подчеркивание (я рекомендую давать макросам имена, содержащие только буквы латиницы). Имя макроса всегда должно начинаться с буквы и не должно совпадать со встроенным именем Excel или именем другого объекта в книге (например, не должно носить имя Workbook, Cells или ЭтаКнига). Лучше давать макросу сразу понятное имя, отражающее примерную суть того, что он делает.
Сочетание клавиш – можно назначить вызов макроса сочетанием клавиш. Доступно назначение любой цифры или буквы в сочетании с Ctrl.
Сохранить в – выбираете место хранения записываемого макроса. Доступны варианты:

  • Эта книга (This Workbook) – макрос будет записан в той же книге, из которой была запущена запись. Записанный макрос будет доступен из приложения только если книга открыта
  • Новая книга (New Workbook) – будет создана новая книга, в которой записан макроса. Записанный макрос будет доступен из приложения только если книга открыта
  • Личная книга макросов (Personal Macro Workbook) – самый интересный вариант. Если его выбрать, то макрос будет сохранен в отдельной книге PERSONAL.XLS (для Excel 2007 и выше - PERSONAL.XLSB). Макросы, записанные в эту книгу доступны из всех открытых книг Excel и эта книга подключается автоматически при запуске самого Excel. Т.е. однажды записав где-то макрос в эту книгу – он теперь будет доступен из любой книги независимо от того, открыта ли книга, из которой был записан макрос или нет. Изначально эта книга отсутствует и создается в момент первого обращения к ней (т.е. как только вы первый раз выбрали Сохранить в личную книгу макросов)


 
ВОСПРОИЗВЕДЕНИЕ МАКРОСА
После записи макроса запустить его можно разными способами:

  1. ПРИ ПОМОЩИ СОЧЕТАНИЯ КЛАВИШ: Alt+F8
    Этот способ универсальный и его можно использовать из любой версии Excel. Достаточно нажать сочетание клавиш Alt+F8 и выбрать нужный макрос из списка:
  2. ВЫЗОВ ИЗ МЕНЮ:
    Excel 2007-2010 и старше: вкладка Разработчик (Developer)Макросы (Macros)
    Excel 2003: СервисМакросМакросы
  3. НАЖАТИЕМ СОБСТВЕННОЙ КНОПКИ НА ЛИСТЕ:
    Можно разместить на листе собственную кнопку, по нажатии которой будет запускаться записанный макрос. Подробно этот процесс я описал в статье: Как создать кнопку для вызова макроса на листе
  4. ПРИ ПОМОЩИ НАЗНАЧЕННЫХ МАКРОСУ ГОРЯЧИХ КЛАВИШ:
    Если вы перед записью назначили макросу сочетание клавиш, то вы также можете вызвать этот макрос и нажатием данного сочетания. Горячие клавиши макросу можно назначить и после записи: Alt+F8→ Выделяем нужный макрос→ Параметры (Options).
  5. ПРИ НАСТУПЛЕНИИ ОПРЕДЕЛЕННОГО СОБЫТИЯ В ЛИСТЕ ИЛИ КНИГЕ:

    Прежде чем пробовать использовать этот метод рекомендуется изучить статью Что такое модуль? Какие бывают модули?Для этого сначала необходимо вставить код макроса в тело событийной процедуры (подробнее про событийные процедуры). Например, если выбрать процедуру листа Change, то в лист автоматически будет вставлена пустая процедура:

    Private Sub Worksheet_Change(ByVal Target As Range)   End Sub

    Private Sub Worksheet_Change(ByVal Target As Range) End Sub

    Если ранее вами был записан код выделения и удаления двух столбцов – Макрос1:

    Sub Макрос1() ' ' Макрос1 Макрос ' макрос удаляет столбцы C и D из активного листа ' ' Сочетание клавиш: Ctrl+Shift+Q ' Columns("C:D").Select Selection.Delete Shift:=xlToLeft End Sub

    Sub Макрос1() ' ' Макрос1 Макрос ' макрос удаляет столбцы C и D из активного листа ' ' Сочетание клавиш: Ctrl+Shift+Q ' Columns("C:D").Select Selection.Delete Shift:=xlToLeft End Sub

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

    Private Sub Worksheet_Change(ByVal Target As Range) Call Макрос1 End Sub

    Private Sub Worksheet_Change(ByVal Target As Range) Call Макрос1 End Sub

    или вставить сам код (без Sub и End Sub) внутрь процедуры Worksheet_Change:

    Private Sub Worksheet_Change(ByVal Target As Range) Columns("C:D").Select Selection.Delete Shift:=xlToLeft End Sub

    Private Sub Worksheet_Change(ByVal Target As Range) Columns("C:D").Select Selection.Delete Shift:=xlToLeft End Sub


 
В каких файлах можно хранить макросы?
Как ни странно, но начиная с версии 2007 Excel не все файлы могут хранить макросы. Это значит, что если макрос был записан в файле и потом файл был сохранен в формате, который хранение макросов не поддерживает - макросы пропадут. Как правило Excel в таком случае выдаст предупреждение о том, что проект VBA в файле этого формата не может быть сохранен и будет удален, если нажать Да:

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

  • *.xls – формат книги Excel 97–2003 (поддержка VBA, макросов)
  • *.xla – надстройка Excel 97–2003 (поддержка VBA, макросов)
  • *.xlsx – формат книги Excel 2007 по умолчанию без поддержки макросов
  • *.xlsm – книга Excel 2007 с поддержкой макросов
  • *.xlsb – двоичный формат для больших объемов данных (с поддержкой VBA, макросов)
  • *.xltx – шаблон книги Excel 2007 без поддержки макросов
  • *.xltm – шаблон книги Excel 2007 с поддержкой макросов
  • *.xlam – надстройка Excel 2007

Для смены формата файла его необходимо сохранить в другом формате:

  • Excel 2007: Кнопка Офис -Сохранить как(SaveAs) -Выбрать необходимый формат файла
  • Excel 2010: Файл(File) -Сохранить как(SaveAs) -Выбрать необходимый формат файла

Теперь несложно понять, что хранить макросы в версиях Excel 2007 и выше можно в форматах: xls, xla, xlsm, xlsb, xltm, xlsm.

Также см.:
Почему не работает макрос?
Как создать кнопку для вызова макроса на листе?
Select и Activate - зачем нужны и нужны ли?
Как ускорить и оптимизировать код VBA


Статья помогла? Поделись ссылкой с друзьями!     Видеоуроки

{"Bottom bar":{"textstyle":"static","textpositionstatic":"bottom","textautohide":true,"textpo

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

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


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

Знакомство с редактором VBA

  1. Создайте новую книгу Excel и сохраните ее как книгу с поддержкой макросов с расширением .xlsm. В старых версиях Excel по 2003 год – как обычную книгу с расширением .xls.
  2. Нажмите сочетание клавиш «левая_клавиша_Alt+F11», которое откроет редактор VBA. С правой клавишей Alt такой фокус не пройдет. Также, в редактор VBA можно перейти по ссылке «Visual Basic» из панели инструментов «Разработчик» на ленте быстрого доступа. Если вкладки «Разработчик» на ленте нет, ее следует добавить в настройках параметров Excel.

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

  1. Нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку после значка Excel на панели инструментов.

После нажатия кнопки «Module» вы увидите ссылку на него, появившуюся в проводнике слева.

Первая программа на VBA Excel

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

  1. Откройте стандартный модуль двойным кликом по его ссылке в проводнике. Поместите в него курсор и нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.

В результате откроется окно добавления шаблона процедуры (Sub).

  1. Наберите в поле «Name» имя процедуры: «Primer1», или скопируйте его отсюда и вставьте в поле «Name». Нажмите кнопку «OK», чтобы добавить в модуль первую и последнюю строки процедуры.

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

  1. Вставьте внутрь шаблона процедуры следующую строку: MsgBox "Привет".

Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».

  1. Проверьте, что курсор находится внутри процедуры, и запустите ее, нажав клавишу «F5». А также, запустить процедуру на выполнение можно, нажав на треугольник (на изображении под пунктом меню «Debug») или на кнопку «Run Sub/UserForm» во вкладке «Run» главного меню редактора VBA Excel.


Если вы увидели такое сообщение, как на изображении, то, поздравляю – вы написали свою первую программу!

Работа с переменными

Чтобы использовать в процедуре переменные, их необходимо объявить с помощью ключевого слова «Dim». Если при объявлении переменных не указать типы данных, они смогут принимать любые доступные в VBA Excel значения. Комментарии в тексте процедур начинаются со знака «’» (апостроф).

Пример 2
Присвоение переменным числовых значений:

Public Sub Primer2()

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

Dim x, y, z

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

x = 25

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

y = 35

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

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

z = x + y

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

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

MsgBox z

End Sub

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

Public Sub Primer3()

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

Dim x, y, z

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

x = "Добрый"

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

y = "день!"

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

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

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

z = x & " " & y

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

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

MsgBox z

End Sub

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

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

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

Пример 4

Public Sub Primer4()

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

Dim x

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

x = 125.61

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

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

Range("A1") = x

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

Range("B1") = 356.24

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

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

Range("C1") = Range("A1") + Range("B1")

End Sub

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

Краткое руководство: создание макроса - Служба поддержки Office

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

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

Процедура

Перед записью макроса    

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

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

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

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

  3. Выполните действия, которые вы хотите автоматизировать (например, введите Стандартный текст или заполните столбец данных).

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

Подробное рассмотрение макроса    

Чтобы ознакомиться с языком программирования Visual Basic, можно изменить макрос.

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

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

Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос. На этот раз посмотрите, что происходит, если что-то не так.

Дальнейшие действия

Процедура

Перед записью макроса    

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

  1. Перейдите в раздел настройки > Excel...Панель инструментов & > ленты.

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

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

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

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

  3. Выполните действия, которые вы хотите автоматизировать (например, введите Стандартный текст или заполните столбец данных).

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

Подробное рассмотрение макроса    

Чтобы ознакомиться с языком программирования Visual Basic, можно изменить макрос.

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

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

Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос. На этот раз посмотрите, что происходит, если что-то не так.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

10 примеры основных макросов в Excel

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

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

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

  • Использование Macro Recorder: В этой процедуре Excel сохраняет каждое действие, которое будет частью макроса, а затем средство записи макросов преобразует эти действия в команды Visual Basic для приложений (VBA).
  • Использование VBA: Если вы немного разбираетесь в программировании или даже владеете языком VBA, вы можете создавать свои макросы самостоятельно. Для этого просто используйте редактор VBA, присутствующий в последних версиях Microsoft Excel.

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

1) Показывать сообщение

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

MsgBox "текст сообщения"

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

2) Запустите макрос при открытии листа

В некоторых случаях макрос необходимо открывать вместе с рабочим листом. В этом случае просто смонтируйте макрос с параметром Auto_Open (). Проверьте пример

Sub Auto_Open ()
MsgBox "Чтобы узнать все о Excel, перейдите на страницу www.https: //luz.vc/"
End Sub


Смотрите также