Vba excel как вывести на панель

Содержание

  1. Как добавить макрос на панель быстрого доступа excel
  2. Как записать макрос в Excel? Пошаговая инструкция.
  3. Отображение вкладки «Разработчик» в ленте меню
  4. Запись макроса в Excel
  5. Что записывает макрос?
  6. Абсолютная и относительная запись макроса
  7. Что нельзя сделать с помощью макрорекодера?
  8. Расширение файлов Excel, которые содержат макросы
  9. Как добавить макрос на панель быстрого доступа excel
  10. Как добавить макрос на панель быстрого доступа в Office

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

Как записать макрос в 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), появится окно кода, как показано ниже.

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

В 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.

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

Обратите внимание, что в коде нет ссылок на ячейки 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, чтобы сохранить этот макрос.

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

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

Чтобы добавить макрос на панель быстрого доступа:

Нажмите стрелку кнопки Настройка панели быстрого доступа и выберите Другие команды

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

Нажмите стрелку списка Настройка панели быстрого доступа и выберите Для всех документов (по умолчанию)).

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

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

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

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

Откроется диалоговое окно «Параметры Excel» с активным экраном «Настройка панели быстрого доступа». Выберите «Макросы» из выпадающего списка «Выбрать команды из».

Выберите нужный макрос из списка под выпадающим списком «Выбрать команды из» и нажмите «Добавить».

Макрос добавляется в список «Настройка панели быстрого доступа».

Нажмите «ОК», чтобы принять изменение и закрыть диалоговое окно «Параметры Excel».

Макросы могут быть записаны в Word и Excel. Мы показали, как добавить макрос на панель быстрого доступа в Excel 2016, но эта процедура также будет работать в Excel 2013 и Word 2013 и 2016.

ПРИМЕЧАНИЕ. Макросы — это, по сути, фрагменты компьютерного кода, которые потенциально опасны. Для получения дополнительной информации см. Нашу статью о том, почему файлы Microsoft Office могут быть опасными .

Источник

Excel для Microsoft 365 Outlook для Microsoft 365 PowerPoint для Microsoft 365 Visio, план 2 Excel 2021 Outlook 2021 PowerPoint 2021 Visio профессиональный 2021 Visio стандартный 2021 Excel 2019 Outlook 2019 PowerPoint 2019 Visio профессиональный 2019 Visio стандартный 2019 Excel 2016 Outlook 2016 PowerPoint 2016 Visio профессиональный 2016 Visio стандартный 2016 Excel 2013 Outlook 2013 PowerPoint 2013 Visio профессиональный 2013 Visio 2013 Excel 2010 Outlook 2010 PowerPoint 2010 Visio 2010 Visio стандартный 2010 Еще…Меньше

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

  1. На вкладке Файл перейдите в раздел Параметры > настройка ленты.

  2. В разделе Настройка ленты в списке Основные вкладки установите флажок Разработчик.

После отображения вкладки вкладка Разработчик остается видимой, если вы не снимите флажок или не переустановите программу Microsoft 365.

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

  • написания макросов;

  • запуска ранее записанных макросов;

  • использования XML-команд;

  • использования элементов ActiveX;

  • Создание приложений для использования с программами Microsoft 365.

  • использования элементов управления формы в Microsoft Excel;

  • работы с таблицей свойств фигуры в Microsoft Visio;

  • создания фигур и наборов элементов в Microsoft Visio.

Нужна дополнительная помощь?

Время на прочтение
1 мин

Количество просмотров 9.7K

Если перед вам стоит задача по автоматизации чего-нибудь в excel, то забудьте про макросы, расположенные непосредственно в книге, создавайте панель инструментов (ribbon), которая

  1. не зависит от конкретного файла
  2. располагается в основной панели инструментов
  3. дает кастомизируемый UI

image

Для того что бы создать такую панель вам потребуется

1) файл excel с расширением xlam, расположенный в %userprofile%appdataroamingmicrosoftaddins

2) редактор xml ресурса (для разметки кнопок)

image

3) определить кнопки по примеру

button id="b_MemberSelect" label="Member Select"    onAction="p_MemberSelect" imageMso="ReturnToTaskList"  size="large" 

где p_MemberSelect это процедура VBA

4) в иницилазации процедуры (в файле xlam) нужно передавать предопределенные параметры
Sub p_MemberSelect(ByVal vIRibbonControl As IRibbonControl)

Но у данного решения есть одно ограничение — нет возможности создавать формы, встроенные в панели Excel, например:

image

Этот пример из проекта In2Sql (плагин для Excel, который визуализирует объекты SQL). В этом плагине код создан с помощью c# и библиотек VSTO.

Каждый, кто сталкивался с написанием макросов в Excel версий 2007 и позже, слышал, что существует вкладка Разработчик. А ведь в ней можно работать не только с возможностями макросов, но и создавать элементы управления (кнопки запуска макросов), настраивать импорт через XML и так далее. Мощное и удобное дополнение к имеющимся вкладкам. 

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

Вкладка Разработчик
Она не доступна изначально, но легко включается через Настройки Excel:

Содержание

  • Вкладка Разработчик. Как включить?
  • Вкладка Разработчик. Основные возможности
  • Раздел Код
  • Раздел Элементы управления
  • Раздел XML
  • Раздел Изменить
  • Похожие статьи

Вкладка Разработчик. Как включить?

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

Вкладка разработчик 2

Вкладка должна появиться рядом со вкладкой Вид.

Для Excel 2016 зайдите в  Параметры — Настройка ленты — в разделе Основные вкладки справа поставьте галочку в пункте Разработчик, и нажмите кнопку ОК.

Вкладка Разработчик. Основные возможности

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

Раздел Код

Вкладка разработчик Код
Опишем каждую из доступных кнопок

Visual Basic — с ее помощью заходим в окно VBA, где можно написать макрос, горячая клавиша Alt + F11

Макросы — откроется панель выбора макросов, горячая клавиша Alt + F8. Подробно о том как запустить макрос можно читать здесь.

Запись макроса — повторяет кнопку внизу панели, для записи макроса макрорекордером.
Вкладка разработчик Код 2
Относительные ссылки — интересная функция, подробней о которой можно прочитать, если навести на нее мышкой:

Вкладка разработчик Код 3

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

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

Раздел Элементы управления

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

Вкладка разработчик Элементы Управления 0

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

Режим конструктора — если вы вставили кнопку, то вам нужно управлять ее свойствами и размерами, это возможно в режиме конструктора.

Свойства — так же нам нужно управлять свойствами кнопок или другого объекта, в том числе листа Excel. Чтобы открыть меню свойств кнопки, запустите режим конструктора, а затем нажмите Свойства. А здесь уже выбор неплохой — цвет, шрифт, границы, печатать объект или нет и т.д. и т.п.
Вкладка разработчик Элементы Управления Свойства
Просмотр кода — во многом дублирует кнопку Visual Basic из раздела Код, но при нажатии этой кнопки, вы сразу попадаете на код привязанный к объекту. А когда объектов много, это очень удобно!

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

Раздел XML

Вкладка разработчик XML
XML (Extensible Markup Language) — расширяемый язык разметки, разработанный специально для размещения информации в World Wide Web. Довольно часто применяется для разного рода обменов данными, как универсальный язык. Например, между сайтом и Excel, 1C и Access и так далее.

Кнопка Источник — при помощи Excel мы можем перевести данные в XML и после использовать их в веб, например, на сайте.

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

Пакеты расширений — по умолчанию подключен пакет Actions Pane 3.

Импорт/Экспорт — если вы настроили импорт или экспорт данных из XML, вы можете передавать или получать данные этими кнопками.

Раздел Изменить

Вкладка разработчик Изменить

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

При ее нажатии открывается окно настройки Область сведений о документе.

Вкладка разработчик Область сведений

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

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

Если остались вопросы, пишите смело в комментарии.

Нажмите ОК, чтобы вернуться к электронной таблице.

Наша вкладка «Макросы» появилась, как мы и надеялись. Тем не менее, он немного пуст в данный момент.

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

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

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

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

Сначала перейдите на вкладку « Разработчик » и нажмите « Макросы» .

Макросы Excel для разработчиков

Введите имя макроса dateandtime и затем нажмите Create .

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

Excel откроет редактор Visual Basic. Добавьте следующий код:

Sub dateandtime() MsgBox Now End Sub 

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

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

макрос запуска Excel

Вы должны увидеть что-то вроде этого:

окно сообщения Excel

Наш макрос сообщения работает! Теперь давайте попробуем что-нибудь более сложное.

Создание макроса автозаголовка

Еще раз откройте диалоговое окно «Макросы», введите имя заголовка и нажмите « Создать» .

заголовки клиентов Excel

Введите следующий код в разделе Sub customheaders () :

 Range("A1").Value = "Date" Range("B1").Value = "Title" Range("C1").Value = "Priority" Range("D1").Value = "Status" Range("E1").Value = "Finished?" 

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

Добавьте эту строку кода внизу:

 Range("A1:E1").Font.Bold = True 

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

Теперь пришло время вернуться в Excel и посмотреть, работает ли наш макрос как надо.

Excel, автозаголовок

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

Теперь еще один макрос.

Создание макроса связанной электронной таблицы

Сначала создайте новую таблицу и сохраните ее. Затем откройте документ, с которым мы работали ранее, и перейдите к « Разработчик» > « Макросы» . Введите название таблицы и нажмите « Создать» .

Введите следующий код ниже Sub connectedspreadsheet () :

 Workbooks.Open ("C:UsersbradjDesktopMake Use OfVBA Toolbarholiday availability.xlsx") 

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

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

Сохраните свою работу и вернитесь в Excel, чтобы проверить ее.

электронная таблица Excel

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

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

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

Используйте команды «Выбрать команды» из выпадающего меню и выберите « Макросы» .

Excel выбрать команды из

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

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

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

Excel переименовать макрос

Теперь у нас есть полнофункциональная панель инструментов, которая предлагает мгновенный доступ к тем макросам, которые мы создали.

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

Сделайте панель инструментов, которая работает для вас!

Всем известно, что Excel является невероятно мощным программным обеспечением.

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

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

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

У вас есть совет по созданию макросов Excel? Вы ищете помощь в процессе создания панели инструментов? Присоединяйтесь к разговору в разделе комментариев ниже!

Изображение предоставлено: ARTIST через Shutterstock.com

 

Ludmilaz77

Пользователь

Сообщений: 22
Регистрация: 12.12.2018

#6

09.08.2019 14:13:21

Теперь появилось, но не вижу инструментов для того, чтобы скрыть листы, нет этой формы. Раньше там было снизу Properties  и можно было сделать листы very invisible
Что-то меняла в настройках,но не помню что… Теперь не отображаются свойства листа

Изменено: Ludmilaz7709.08.2019 14:20:40

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

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

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

Формирование панели инструментов происходит при загрузке файла, при закрытии же его — созданная панель скрывается:

Private Sub Workbook_Open()
    ФормированиеПанелиИнструментов
End Sub
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    GetCommandBar(PROJECT_NAME, True).Visible = False
End Sub

Основной код модуля:

' ВНИМАНИЕ! Наличие константы PROJECT_NAME ОБЯЗАТЕЛЬНО!
Public Const PROJECT_NAME = "Addin CommandBar"
 
' список допустимых элементов управления на пользовательской панели инструментов
Public Enum CONTROL_TYPES
    ct_BUTTON = msoControlButton
    ct_TEXTBOX = msoControlEdit
    ct_COMBOBOX = msoControlComboBox
    ct_DROPDOWN = msoControlDropdown
    ct_POPUP = msoControlPopup
End Enum
 
Function Add_Control(ByRef Comm_Bar, ByVal ControlType As CONTROL_TYPES, ByVal B_Face As Integer, _
                     ByVal On_Action As String, ByVal B_Caption As String, _
                     Optional ByVal Button_Style As MsoButtonStyle = msoButtonIcon, _
                     Optional ByVal Begin_Group As Boolean = False, _
                     Optional Tag As String = "") As CommandBarControl
    ' добавляет контролы в меню Comm_Bar, возвращает ссылку на созданный пункт меню
    On Error Resume Next
    Set Add_Control = Comm_Bar.Controls.Add(Type:=ControlType, Temporary:=True)    ' создаём новый контрол
    With Add_Control
        If B_Face > 0 And ControlType = ct_BUTTON Then .FaceId = B_Face    ' назначаем кнопке иконку
        .Tag = Tag: .OnAction = On_Action: .Caption = B_Caption    ' параметры контрола
        .BeginGroup = Begin_Group    ' добавляем разделитель (при необходимости)
        If ControlType = ct_BUTTON Then .Style = Button_Style
    End With
End Function

Function GetCommandBar(ByVal CommandBarName As String, Optional ByVal Clean As Boolean = False, _
                       Optional ByVal Position As MsoBarPosition = msoBarFloating) As CommandBar
    On Error Resume Next: Err.Clear
    ' получаем ссылку на пользовательскую панель инструментов
    Set GetCommandBar = Application.CommandBars(CommandBarName)
    If Err.Number Then    ' если панель не найдена - создаём её
        Set GetCommandBar = Application.CommandBars.Add(CommandBarName, Position, False, True)
    End If
    If Clean Then    ' перебираем на ней все элементы, и удаляем их
        For Each cbc In GetCommandBar.Controls: cbc.Delete: Next
    End If
    GetCommandBar.Visible = True    ' отображаем панель инструментов
End Function
 
 
Sub УдалениеПанелиИнструментов()
    GetCommandBar PROJECT_NAME, True
End Sub
 
Sub ФормированиеПанелиИнструментов()
    On Error Resume Next: Application.ScreenUpdating = False
    ' получаем ссылку на пользовательскую панель инструментов
    Set AddinMenu = GetCommandBar(PROJECT_NAME, True)
 
    ' добавление новых элементов управления на панель
    Add_Control AddinMenu, ct_BUTTON, 271, "CreateBackup", "Create Backup and Save", , True
    Add_Control AddinMenu, ct_BUTTON, 1099, "MainMacro", "Запуск основного макроса", msoButtonIconAndCaption, True
 
    Add_Control(AddinMenu, ct_TEXTBOX, 0, "ComboChanged", "Курс EURO", , True, "EURO").Text = "Курс EURO"
    Add_Control(AddinMenu, ct_TEXTBOX, 0, "ComboChanged", "Курс USD", , False, "USD").Text = "Курс USD"
    Add_Control AddinMenu, ct_BUTTON, 395, "GetRatesFromInternet", "Получить курс с сайта Центробанка", False
 
    Dim combo As CommandBarControl    ' добавляем выпадающий список
    Set combo = Add_Control(AddinMenu, ct_COMBOBOX, 548, "ComboChanged", "Выбор продукции", , True, "ПРОДУКЦИЯ")
    ' добавляем позиции (пункты) в выпадающий список
    For i = 1 To 10: combo.AddItem "Позиция " & i: Next i
    combo.Text = "выберите позицию"    ' текст комбобокса по умолчанию
    combo.Width = 145    ' изменяем ширину выпадающего списка на панели инструментов

    Add_Control AddinMenu, ct_BUTTON, 280, "RenamePhotoes", "Переименование фотографий", , True
 
    Dim popup As CommandBarControl    ' добавляем выпадающее меню
    Set popup = Add_Control(AddinMenu, ct_POPUP, 548, "", "Доп. макросы", , True)
    For i = 1 To 5    ' добавляем пункты в подменю popup
        Add_Control popup, ct_BUTTON, 70 + i, "AdditionalMacros", "Дополнительный макрос " & i, False, , CStr(i)
    Next i
 
    Add_Control AddinMenu, ct_BUTTON, 222, "EditWorkPlan", "Перейти к редактирования техзадания на программу", , True
 
    Add_Control AddinMenu, ct_BUTTON, 1088, "SetIsAddinAsTrue", "Скрыть листы файла программы", , True
    Add_Control AddinMenu, ct_BUTTON, 1087, "SetIsAddinAsFalse", "Отобразить листы файла программы", , False
 
    Add_Control AddinMenu, ct_BUTTON, 548, "ShowFormSettingsPage", "Настройки", , True
 
End Sub

Sub SetIsAddinAsFalse()
    On Error Resume Next: ThisWorkbook.IsAddin = False
End Sub
 
Sub SetIsAddinAsTrue()
    On Error Resume Next: ThisWorkbook.IsAddin = True
End Sub
 
 
Sub CreateBackup()
    ' сохраняет файл надстройки, и создаёт резервную копию файла в специальной папке
    On Error Resume Next
    If Not ThisWorkbook.Saved Then ThisWorkbook.Save  ' сохранение файла
    ' формируем путь к папке для резервных копий программы
    BackupsPath = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, PROJECT_NAME & " Backups")
    ' создаём папку, если она не существует
    MkDir BackupsPath
    ' формируем путь для файла резервной копии
    Filename = PROJECT_NAME & "_BACKUP_" & Format(Now, "DD-MM-YYYY__HH-NN-SS") & ".xls"
    ' создаём копию файла надстройки
    ThisWorkbook.SaveCopyAs BackupsPath & Filename
End Sub

Sub ComboChanged()    ' срабатывает при изменении значения в комбобоксе или текстбоксе
    On Error Resume Next
    НазваниеКомбобокса = Application.CommandBars.ActionControl.Tag
    ТекстКомбобокса = Application.CommandBars.ActionControl.Text
    MsgBox "Новое значение: """ & ТекстКомбобокса & """", _
           vbInformation, "Изменения в полесписке """ & НазваниеКомбобокса & """"
End Sub
Sub AdditionalMacros()    ' срабатывает при нажатии одной из кнопок в подменю
    On Error Resume Next
    НомерМакроса = Application.CommandBars.ActionControl.Tag
    MsgBox "Параметр макроса = """ & НомерМакроса & """", vbInformation, "Запущен макрос из подменю"
End Sub
  • 79462 просмотра

Не получается применить макрос? Не удаётся изменить код под свои нужды?

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

Вкладка разработчика в Excel

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

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

Как добавить вкладку разработчика в Excel?

  • Шаг 1. Откройте новый лист Excel и перейдите к файлу, перейдите к параметрам.

  • Шаг 2. После нажатия «Параметры» выберите «Настроить ленту» слева и выберите «Основные вкладки» справа, затем установите флажок «Разработчик» и нажмите кнопку «ОК».

  • Шаг 3. Вкладка разработчика появится в файле Excel

Как писать программы VBA с помощью вкладки разработчика?

Вкладку разработчика в Excel можно использовать для написания программ VBA, как показано ниже —

Вы можете скачать этот шаблон Excel для вкладки разработчика здесь — шаблон для вкладки разработчика в Excel

Пример №1 — Написание простого кода для отображения «Привет, добро пожаловать в VBA»

Перейдите на вкладку разработчика и выберите «Visual Basic», появится новое окно.

Дважды щелкните Sheet1 (Sheet1), и справа появится пустой документ или панель.

Напишите следующий код и нажмите кнопку «Выполнить», появится всплывающее окно с надписью «Привет, добро пожаловать в VBA».

Пояснение к коду:

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

« Msgbox » — это функциональная функция в пакете VBA, которая отображает все, что в нем написано, например, здесь («Привет, добро пожаловать в VBA»)

Чтобы сохранить приведенный выше код, сохраните его как файл .xlsm, чтобы сохранить код макроса.

Пример # 2 — Функция нажатия кнопки

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

Перейдите на вкладку «Разработчик» и нажмите «Радиокнопки» в Excel и выберите «Кнопка (управление формой)»

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

Нажмите кнопку «Создать», и появится следующая кодовая страница.

Кодовая часть и объяснение

  • Функция « Dim » используется для объявления переменной, которая может быть строковой, числовой и т. Д. (Здесь Имя и Место рождения — переменные, объявленные как строка)
  • «InputBox» — это функциональная функция в VBA, в которой пользователя просят ввести
  • « Msgbox » — это функциональная возможность в пакете VBA, которая отображает все, что в нем написано.

Теперь закройте окно кодовой страницы

Щелкните правой кнопкой мыши по кнопке и выберите редактировать текст в Excel, где была создана кнопка, и переименуйте его в «Name_Birth»

Нажмите на кнопку и введите имя и место рождения.

Появятся два запроса для имени и рождения (введите имя и место рождения, например: Дриш и Пуна)

После ввода имени появится следующий вывод

Сохраните файл как файл .xlsm

Как записать макрос на вкладке разработчика?

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

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

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

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

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

Нажмите на Запись макроса в Excel.

После нажатия на кнопку «Запись макроса» появится диалоговое окно, в котором его можно переименовать в Color_Yellow.

Цвет столбцов F, G и итоговой строки желтым

После раскраски переходим во вкладку Разработчик

Нажмите Остановить запись.

Перейдите на вкладку Разработчик в Excel и Visual Basic

Выбрать модуль

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

Как обеспечить безопасность макросов с помощью вкладки разработчика?

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

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

Открыть Visual Basic

Откройте макрос, для кода которого требуется активация пароля (например: мы берем макрос Color_Yellow, как в приведенном выше примере)

Выберите Инструменты и свойства VBAProject.

Появится диалоговое окно

Выберите вкладку Защита

Проверьте проект блокировки для просмотра

Введите нужный пароль, подтвердите его и нажмите ОК.

Сохраните его как файл .xlsm при сохранении и закройте

Откройте файл и повторите шаги 1,2 и 3.

Он запросит пароль и введите пароль

Теперь сможем увидеть код

То, что нужно запомнить

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

Понравилась статья? Поделить с друзьями:
  • Vba excel как вывести массивы
  • Vba excel как выбрать ячейку
  • Vba excel как выбрать ячейки
  • Vba excel как выбрать книгу
  • Vba excel как выбрать диапазон ячеек