Создание кнопки в Microsoft Excel

Как вставить кнопку в Excel

Добрый день уважаемый читатель!

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

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

В связи с этими причинами можно определить 3 варианта, куда есть возможность внедрить кнопки, в зависимости от необходимости:

Вставляем кнопки в панель быстрого доступа Excel

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

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

  1. Вариант №1: справа от панели нажать кнопку выпадающего меню «Настройка панели быстрого доступа», выбираете пункт «Другие команды…». Вариант №2: нажать ярлык «Файл», потом «Параметры» и в диалоговом окне слева выбрать «Панель быстрого доступа».
  2. В выпадающем списке «Выбрать команды из», установить пункт «Все команды»;
  3. Для списка «Настройка панели быстрого доступа» указываете пункт «Для всех документов (по умолчанию)»;
  4. В списке команд находите нужную, устанавливаете на нее курсор и кликнете кнопку «Добавить», выбранная кнопка перенесется в вашу панель. Повторите эту процедуру для всех нужных кнопок.

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

Вставляем кнопки в панель инструментов

Теперь поговорим более обширно, когда нужно расширить стандартный функционал добавлением новых кнопок с новыми возможностями, вернее сказать открыть скрытые возможности. Используя путь по варианту №2 (см. выше) в диалоговом окне «Параметры Excel» выбираете слева пункт «Настройка ленты». Еще намного проще вызвать диалоговое окно настроек это на ленте кликнуть мышкой, вызвав контекстное меню и выбрать пункт «Настройка ленты…». Существуют сотни команд, которые не попали на ленту управления, тем не менее, их возможности могут вам помочь, а значится их кнопки надо найти и добавить в тот блок, который нужно расширить по функционалу.

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

Вставляем в кнопку макрос

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

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

Пример №1:

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

  1. В редакторе VBA создаем макрос;

  1. В меню «Параметры» выбираете пункт «Панель быстрого доступа»;
  2. В выпадающем списке «Выбрать команды из…», указываем «Макросы»;
  3. Выбираем макрос «Моя_программа»;
  4. Кликаем кнопку «Добавить» и перемещаем макрос в перечень кнопок в панели быстрого доступа;
  5. Теперь нажав кнопку «Изменить…» можно с предложенного списка выбрать новую пиктограммку для макроса, взамен непонятной абстракции;
  6. В диалоговом окне «Изменение кнопки» в поле «Символ» выбираете подходящий значок для кнопки;
  7. Взамен предлагаемого программой имени кнопки, есть возможность в поле «Отображаемое имя:» ввести то которое вам нужно (можно вводить и с пробелами);
  8. Кликаем «ОК» на выборе иконки и «ОК» в настройках.

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

Пример №2:

Теперь добавим макрос в кнопку и поместим ее на ленте в настраиваемой группе. Пошагово это можно сделать так:

  1. Используем созданный в редакторе макрос, как в пункте №1 предыдущего примера;
  2. В меню «Параметры» выбираете пункт «Настройка ленты»;
  3. В окне «Основные вкладки» устанавливаем курсор на тот раздел, где необходимо создать группу (например, «Главная») и кликаем на кнопку «Создать группу»;
  4. Устанавливаем курсор на созданную по умолчанию группу «Новая группа (настраиваемая)», кликаем кнопку «Переименовать» и в диалоговом окне можем выбрать пиктограмму группы и в поле «Отображаемое имя» вводите нужное имя (например, «ТОП»);
  5. В выпадающем списке «Выбрать команды», выбираем «Макросы»;
  6. Указываем созданный нами макрос «Моя_программа»;
  7. Кликаем кнопку «Добавить» и перемещаем макрос в созданную нами группу «ТОП (настраиваемая);
  8. Выбираете перенесённую кнопку макроса в группе «ТОП», нажимаете кнопку «Переименовать» и вводите правильное имя (пробелы в имени допускаются) в диалоговом окне в поле «Отображаемое имя», там же выбираете и новую иконку для кнопки;
  9. Теперь осталось только подтвердить введенные изменения двойным подтверждением «ОК».

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

А на этом у меня всё! Я очень надеюсь, что теперь вставить кнопку в Excel на панель управления вы сможете и с закрытыми глазами, ну или хотя бы с сощуренными. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями, прочитанным и ставьте лайк!

Не забудьте поблагодарить автора!

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

Microsoft Excel

трюки • приёмы • решения

Как в VBA Excel использовать свойства элемента управления «Кнопка»

Как уже было сказано во введении, у программных объектов имеются различные свойства. Первое очевидное желание заключается в том, чтобы просмотреть (а затем и изменить) значения свойств объектов. Для просмотра свойств объекта его необходимо сначала выделить в режиме конструктора (щелкнуть на нем мышью), а затем с помощью пиктограммы Свойства (она расположена рядом с пиктограммой Режим конструктора) открыть окно свойств (рис. 1.8).

Рис. 1.8. Окно свойств объекта

В окне свойств отображается таблица набор строк в два столбца. При этом левый столбец отводится для названий свойств, а в нравом расположены значения этих свойств. Понятно, что содержание левого столбца изменить нельзя свойства объекта уже определены его разработчиком (компанией Microsoft). А значения свойств мы поменять можем для этого достаточно щелкнуть в ячейке правого столбца и изменить се содержание.

Если приглядеться к окну на рис. 1.8, то мы увидим, что для ряда свойств возможны только два варианта значений. Например, для свойства Visible (определяет видимость объекта на экране) возможны только значения False и True. Такая ситуация наблюдается и для ряда других свойств. Среди них можно отметить Enabled определяет доступ к объекту в режиме выполнения (если установить для этого свойства значение False и выйти из режима конструктора, то объект будет недоступен). Свойство AutoSize позволяет обеспечить автоматическую подгонку размеров кнопки под размер текста, расположенного на ней. Такое будет происходить, если установить True в качестве значения данного свойства.

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

    W >Если для свойства Enabled установлено значение False, то элемент управления на экране будет выглядеть более блекло (такая ситуация знакома по работе с различными приложениями, когда ряд разделов меню недоступен).

Рис. 1.9. Палитра цветов

Если теперь в режиме конструктора выбудете перемещать созданную на листе кнопку но экрану и изменять ее размеры (с помощью окружающих ее маркеров), то соответствующие значения в окне свойств будут меняться. И наоборот, изменив значения в окне свойств, вы увидите изменения на экране. Для установки значений ряда свойств следует использовать пиктографические меню. Так, с помощью свойства BackColor можно изменять цвет кнопки. Для этого всего лишь требуется щелчком мыши выбрать необходимый цвет (рис. 1.9). Аналогичное свойство ForeColor определяет цвет текста на кнопке. За надпись на кнопке отвечает другое свойство Caption. Если напротив названия этого свойства ввести текст (рис. 1.10), то мы увидим его и на кнопке.

Рис. 1.10. Установка значения свойства Caption

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

Рис. 1.11. Окно диалога для выбора шрифта надписи на кнопке

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

Читайте также  6 способов замены точки на запятую в программе Microsoft Excel

Во введении уже упоминалось, что основное свойство объекта это имя. В окне свойств оно называется Name. Как мы видели (см. рис. 1.8) на примере создания кнопки, Excel автоматически присвоил ей имя. Имя первой созданной кнопки на рабочем листе по умолчанию CommandButtonl, которое вы при желании можете изменить. Явной необходимости изменения имен, которые присваиваются по умолчанию, нет. Однако очень часто программисты назначают объектам свои имена. Это связано с тем, что к любым объектам на листе мы можем получить доступ из текста программы (фактически требуется обращаться к свойствам и методам этих объектов), указав имя конкретного объекта. В связи с этим с точки зрения организации программного кода часто удобнее использовать свою систему назначения имен объектов.

Рис. 1.12. Размещение на кнопке изображения

Система формирования имен по умолчанию заключается в комбинации типа элемента управления (CommandButton — командная кнопка) и числа (порядкового номера элемента управления данного типа).

Для первой созданной кнопки имя — CommandButton1. Если мы на рабочем листе разместим еще одну кнопку, то она будет иметь имя CommandButton2. При добавлении последующих кнопок данный принцип сохраняется. Если вы все же решитесь изменить имя, то вместо CommandButton1 в окне свойств следует набрать слово или словосочетание, которое вас устраивает. Но заметим, что оно должно быть без пробелов внутри (частая ошибка в первых разработках). В качестве примера подберем новое имя для кнопки — PrimerButton.

Рис. 1.13. Окно диалога для выбора графического файла

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

С подобных шагов начинается любая разработка на листе размещаются элементы ActiveX, и ряду их свойств присваиваются необходимые значения. На первый взгляд свойства Name и Caption похожи, и кажется, одно из них является лишним. Однако это не так, и в связи с этим дадим небольшое пояснение. Дело в том, что Name внутреннее название объекта, и значение этого свойства используется на программном уровне (во введении об этом уже шла речь). Если мы хотим использовать в программном коде обращение к свойствам и методам объекта, то в строке программной процедуры необходимо указать имя объекта. Свойство же Caption отвечает просто за надпись на кнопке, и значение его только отображается на экране.

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

Рис. 1.14. Установка свойств кнопки

Таким образом, результатом выполненных действий явились создание нового объекта в нашей рабочей книге Microsoft Excel и установка значений для ряда его свойств. Вообще, в режиме конструктора мы размещаем на рабочем листе элементы ActiveX и устанавливаем значения их свойств, а в режиме выполнения работаем с созданными объектами (щелкаем кнопками, вводим текст в текстовые окна и т. д.).

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

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

Автофигура

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

  1. Откройте программу.
  2. Перейдите на вкладку «Вставка».
  3. В группе инструментов «Иллюстрации» отыщите кнопку «Фигуры» и нажмите по ней.
  4. Появится меню, в котором располагаются всевозможные геометрические фигуры. Вам необходимо выбрать ту, которая и будет служить кнопкой для перехода по гиперссылке. В данном случае мы будем использовать прямоугольник со скругленными углами. Кликаем по нему.
  5. На листе таблицы появится выбранный элемент. Изначально он вряд ли будет подходящей формы, поэтому переместите его в нужную область листа (в какую-нибудь ячейку) и измените размер, используя специальные маркеры на четырех сторонах прямоугольника.

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

  1. Для этого нажмите правой кнопкой мыши (ПКМ) по прямоугольнику.
  2. Выберите пункт «Гиперссылка».
  3. В появившемся окне вам нужно выбрать один из четырех типов ссылки. Вы можете сделать ссылку на внешний файл или интернет-ресурс, выбрав пункт «файлом, веб-страницей»; можете сделать ссылку на место в документе, выбрав одноименный пункт; можно также сослаться на другой документ и на электронную почту. В последнем случае после нажатия по кнопке будет создано новое письмо на указанный адрес почты.
  4. Мы покажем пример создания со ссылкой на место в документе. Кликаем по одноименной кнопке.
  5. В соответствующем меню вы можете указать адрес ячейки или же определить другое место в документе.
  6. После выбора нажмите кнопку «ОК».

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

Собственное изображение

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

  1. В программе перейдите на вкладку «Вставка».
  2. Нажмите по кнопке «Рисунок», которая располагается в группе инструментов «Иллюстрации».
  3. Откроется окно файлового менеджера «Проводник». В нем необходимо перейти в папку с картинкой кнопки, выделить ее и нажать «Вставить».
  4. Выбранное изображение появится на листе программы. Измените его расположение и размер по своим предпочтениям.
  5. Нажмите по ПКМ и выберите действие «Назначить макрос».
  6. Появится окно с перечнем макросов. Вам остается лишь выбрать нужный и нажать кнопку «ОК».

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

Элемент ActiveX

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

  1. Включите панель «Разработчика». Для этого в параметрах в разделе «Настройка ленты» поставьте галочку напротив пункта «Разработчик».
  2. Перейдите на только что добавленную вкладку «Разработчик».
  3. Нажмите по кнопке «Вставить» и выберите из выпадающего меню в разделе «Элементы ActiveX» первый пункт, который имеет вид кнопки.
  4. Кликните по любому месту на листе для вставки кнопки.
  5. При желании можете изменить месторасположение и размер элемента.
  6. Для добавления действия на кнопку кликните по ней дважды левой кнопкой мыши.
  7. Откроется окно с полем для ввода макроса. В него вы можете прописать любое необходимое действие.
  8. После ввода макроса закройте окно.

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

Заключение

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

Туториал: создание VBA-надстройки с отдельной вкладкой в MS Excel

Многие из тех, кто часто работает в MS Excel, собрали коллекцию макросов на VBA, которые облегчают их ежедневный труд. У кого-то эти макросы хранятся в отдельной книге, кто-то собрал их в «личной книге макросов» (personal.xlsb), доступной на уровне всего приложения, и вручную добавил кнопки вызова нужных скриптов на панель инструментов. В первом случае коллекцией удобно делиться с коллегами — достаточно переслать файл, но чтобы ей воспользоваться, необходимо каждый раз открывать эту книгу. Во втором случае доступ к функциональности есть сразу при запуске Excel, но могут возникнуть проблемы с передачей наработок другим пользователям.

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

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

Используемые инструменты: MS Excel, 7zip, Visual Sudio Code. Последние два необязательны, подойдёт любой архиватор с поддержкой zip-формата и любой текстовый редактор, умеющий в UTF-8 (если Вы хотите использовать кириллицу).

Также желательно обладать базовым представлением о формате XML.

Код и результат в виде книги xlsm можно найти на гитхабе:

Итак, для начала откроем новую книгу, и добавим модуль с образцом кода:

Сохраним книгу в формате xlsm (книга с поддержкой макросов). Современные форматы документов MS Office (xlsx, xlsm, docx, docm, pptx и т.д.) основаны на стандарте OpenXML и представляют из себя обычный zip-архив, который состоит из компонентов (например, XML-файлы, соответствующие листам, изображения, бинарный контент и прочее), а также файлов отношений (.rels), которые задают структуру всего документа, путём ссылок на компоненты.

Чтобы получить доступ к внутреннему содержимому книги, можно переименовать файл Sample.xlsm в Sample.zip , после чего открыть его любым архиватором. Некоторые архиваторы, например 7zip, умеют открывать файлы напрямую, без изменения имени файла:

Чтобы добавить ribbon-панель, нам нужно будет создать новый компонент customUI/customUI.xml, а также добавить ссылку на него в корневой файл отношений _rels/.rels

Разархивируем весь документ в отдельную папку («Распаковать в «Sample»»), и создадим в ней новую папку customUI:

Теперь добавим собственно компонент:

Ниже приводится текстовая версия содержимого customUI.xml

Коротко расскажу о важных элементах и атрибутах.

Значения идентификаторов (атрибут id) должны быть уникальными. Для некоторых элементов (например, tab — в случае, если Вы объявляете новую вкладку, а не существующую, путем указания idMso) также обязательно указать label — иначе Excel не отобразит этот элемент.

Читайте также  Управление массивами в Microsoft Excel

С помощью атрибута imageMso можно определить иконку элемента из числа имеющихся в MS Office. Список доступных значений весьма объемный, поэтому здесь приводить не буду — он легко гуглится.

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

Атрибут onAction задаёт название процедуры, которая будет выполнена при основном взаимодействии с элементом (например, при нажатии на кнопку button). Процедура должна иметь определённую сигнатуру (количество и тип аргументов), их можно найти в спецификации. Например, метод для onAction у элемента button принимает один аргумент типа IRibbonControl.

Название этого метода также не должно совпадать с названием модуля (либо необходимо явно указать имя модуля перед именем самого метода: «Module1.SayHelloWorld«).

Атрибут keytip поможет в навигации с помощью клавиатуры — с помощью клавиши Alt можно осуществлять навигацию по вкладкам MS Excel.

Вы можете скопировать образец вёрстки на официальном сайте с документацией от Microsoft:

Для тех, кто хочет подробно изучить стандарт, есть спецификация, также на docs.microsoft.com :

Обратите внимание, что при наличии не-ASCII символов (например, кириллицы) файл следует сохранить в кодировке UTF-8, иначе Вы можете столкнуться с тем, что Excel не будет отображать новую вкладку.

Чтобы MS Excel «увидел» и «понял», что за компонент мы добавили, нужно указать ссылку на него в корневом файле отношений, который лежит в папке _rels, и называется .rels

Он также имеет xml-формат, и для удобства можно отформатировать его (в VS Code для этого есть команда: Ctrl-Shift-P -> Format Document).

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

Добавляю текст отношения для удобства копирования (чтобы парсер не «съел» URL, добавил пробел перед .com — не забудьте его убрать при копировании)

Теперь заархивируйте обратно все файлы, и верните исходное имя файла Sample.xlsm

Если всё было сделано правильно, то при открытии книги Вы увидите новую вкладку на ленте:

Однако при попытке запустить макрос HelloWorld Вы можете столкнуться с таким предупреждением:

Wrong number of arguments or invalid property assignment

Это связано с тем, что функция-коллбэк должна иметь определенную сигнатуру. Так, обработчик нажатия на кнопку button должен выглядеть следующим образом:

Добавьте аргумент «rc As IRibbonControl», и Вы увидите долгожданное приветствие:

Список сигнатур можно найти на сайте документации Microsoft

Теперь осталось лишь сохранить книгу с макросами как надстройку. В редакторе VBE выберите объект ThisWorkbook и установите свойство IsAddin в значение True.

Теперь нужно сохранить книгу в новом формате (Excel предупредит об этом, если Вы попытаетесь сохранить книгу нажатием Ctrl-S)

Теперь надстройку можно открыть, как обычную книгу Excel. Она не будет отображаться в отдельном окне, как книга, но её можно увидеть в Project Explorer’е редактора VBE:

Для того, чтобы надстройка была доступна сразу при запуске Excel, установите её в меню Excel Add-ins на вкладке разработчика.

. или через настройки Excel, в разделе Надстройки (Add-ins)

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

P.S. В качестве бонуса приведу примеры использования различных элементов в Custom UI

toggleButton — кнопка, которая может быть в двух состояниях

splitButton — составной компонент из button или toggleButton и выпадающего меню

dropDown — выпадающее меню с заранее определённым набором элементов

comboBox — интерактивное поле ввода, которое может содержать заранее определённый набор элементов

dynamicMenu — выпадающий список, элементы которого определяются динамически в методе getContent

checkBox — чекбокс, который может быть в двух состояниях

Разметка и код VBA модуля ниже, также их можно найти на гитхабе

VBA модуль SampleControls

Public Sub OnSplitButton1Click(rc As IRibbonControl)

MsgBox «Split button 1 was clicked»

Public Sub OnSplitButton2Click(rc As IRibbonControl)

MsgBox «Split button 2 was clicked»

Public Sub OnToggleButtonClick(rc As IRibbonControl, isButtonPressed As Boolean)

MsgBox «Toggle button was toggled, button now is » & IIf(isButtonPressed, «pressed», «not pressed»)

Public Sub OnDropDownSelected(rc As IRibbonControl, selectedItemId As String, selectedItemIndex As Integer)

MsgBox «DropDown was changed, selected item id is » & selectedItemId

Public Sub OnComboBoxSelected(rc As IRibbonControl, comboBoxValue As String)

MsgBox «Combo box was changed, value is » & comboBoxValue

Public Sub GetMenuContent(rc As IRibbonControl, ByRef returnedVal)

Dim xml As String

Public Sub OnCheckBoxToggled(rc As IRibbonControl, isButtonChecked As Boolean)

MsgBox «Check box was toggled, value is » & IIf(isButtonChecked, «checked», «not checked»)

Public Sub OnHelpPressed(rc As IRibbonControl)

MsgBox «Help button pressed»

Public Sub OnFindPressed(rc As IRibbonControl)

MsgBox «Find button pressed»

Более подробная информация о различных элементах Custom UI есть в документации:

P.P.S. Дополнительный бонус для тех кто дочитал до конца — горячие клавиши редактора VBE

Навигация по редактору

Ctrl-R — перейти в окно проектов (Project Explorer)

F4 — перейти к свойствам

Ctrl-G — перейти к Immediate window

F7 — перейти в окно редактора кода

Ctrl-Tab (Ctrl-Shift-Tab) — переключение между открытыми окнами модулей

Ctrl-F4 -закрыть текущий модуль

Alt-F11 — открыть редактор кода VBE

Редактирование и навигация по коду

Ctrl-J — показать доступные варианты (IntelliSense)

Ctrl-I — показать информацию о методе (аргументах)

Shift-F2 — перейти к определению переменной/метода

F5 — запустить макрос/продолжить исполнение

F8 — шаг вперёд (с заходом во вложенные функции)

Shift-F8 — шаг вперёд (без захода вглубь)

F9 — установить/снять точку останова (breakpoint)

Shift-F9 — добавить наблюдателя (quick watch)

Ctrl-L — показать стек вызовов (кликабельный)

Найдены дубликаты

Часто люди, работающие в офисных приложениях (Excel, Word), вынуждены совершать рутинные действия — сведение однотипных отчётов, поиск ошибок и т.д. Для автоматизации такой работы предусмотрен язык программирования — Visual Basic for Applications (VBA), тесно интегрированный с офисным приложением. Программы, написанные на нём, называют макросами.

Иногда таких наработок становится много, сами они становятся большими — и возникает необходимость как-то их организовать, хранить, делиться с другими пользователями и удобно запускать. Вариантов несколько:

1. Сохранить в одном или нескольких документах, сохранённых в формате с поддержкой макросов (docm, xlsm). Они выглядят как обычный документ или книга, но помимо обычного содержимого, также включают в себя макросы.

2. Сохранять их в личной книге макросов. Эта штука доступна на уровне приложения, запускаемого под текущим пользователем Windows. Но она лежит где-то в недрах %appdata%, и рядовой пользователь вряд ли станет её искать, чтобы скинуть коллеге.

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

Переключатель — элемент управления формы в EXCEL

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

Для вставки элементов управления на лист необходимо отобразить вкладку Разработчик.

  • В MS EXCEL 2007 это можно сделать через меню Кнопка офис/ Параметры Excel/ Основные/ Показывать вкладку Разработчик на ленте .
  • В MS EXCEL 2010 это можно сделать так: Откройте вкладку Файл ; Нажмите кнопку Параметры ; Нажмите кнопку Настроить ленту ; Выберите команду Настройка ленты и в разделе Основные вкладки установите флажок Разработчик .

Теперь вставить элемент управления можно через меню: Разработчик/ Элементы управления/ Вставить .

Обратите внимание, что в этом меню можно также вставить Элементы ActiveX, которые расположены ниже интересующих нас Элементов управления формы. У обоих типов есть одни и те же элементы Кнопка, Список, Флажок и т.п. Разница между ними следующая: чтобы использовать Элементы ActiveX необходимо использовать VBA, а Элементы управления формы можно напрямую привязать к ячейке на листе.

Полоса прокрутки ( Scroll Bar ) как, впрочем и все другие Элементы управления формы, возвращает только 1 числовое значение. См. файл примера .

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

Вставка Переключателя

Через меню Разработчик/ Элементы управления/ Вставить выберем левой клавишей мыши элемент Переключатель .

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

превратится в тонкий крестик.

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

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

Выделение Переключателей

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

Выравнивание Переключателей

Выровнять Переключатели по левому краю, выделите их, затем нажмите кнопку меню Выровнять по левому краю ( Формат/ Упорядочить/ Выровнять ).

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

Опять выделите Переключатели и нажмите кнопку меню Распределить по вертикали ( Формат/ Упорядочить/ Выровнять ).

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

Перемещение Переключателей и изменение их размеров

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

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

Связываем Переключатель с ячейкой

Как было сказано выше, все Элементы управления формы возвращают значение. Это значение помещается в ячейку определенную пользователем. Чтобы связать Элемент управления с ячейкой, кликните на него ПРАВОЙ клавишей мыши, в появившемся контекстном меню выберите Формат объекта. Появится диалоговое окно, выберите вкладку Элемент управления (если такая вкладка отсутствует, то Вы вставили Элемент ActiveX, а не Элемент управления формы, об этом см. выше).

В поле Связь с ячейкой нужно ввести ссылку на ячейку. Свяжем наши Переключатели с ячейкой А1 .

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

Читайте также  Создание калькулятора в Microsoft Excel

В нашем случае (3 Переключателя ) в ячейке А1 будет выводится значение 1, если выбран первый Переключатель , 2, если выбран второй и 3, если третий.

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

Чтобы организовать 2 независимых группы Переключателей , необходимо использовать Элемент управления формы — Группа . Сначала разместите на листе две Группы , затем поместите на них требуемое количество Переключателей , затем свяжите по одному из Переключателей из каждой группы с разными ячейками на листе (см. лист Группа в файле примера ).

Примечание : Использовать только 2 Переключателя на листе не имеет смысла — их функциональность эквивалентна элементу Флажок , а затрат на их создание в 2 раза больше. Флажок возвращает ИСТИНА или ЛОЖЬ, а 2 Переключателя — 1 или 2. Хотя, это, безусловно, дело вкуса.

Использование Переключателей

Переключатели часто используются для выбора опций или параметров вычислений. Например, при планировании планов продаж можно рассчитать объемы продаж по трем сценариям «Базовый», «Умеренный», «Оптимистичный», каждый из которых предусматривает свой рост продаж +5%, +10%, +20%.

Переключатели связаны с ячейкой А1 . Значения в ячейке (от 1 до 3) преобразуются в 5%, 10%, 20% с помощью формулы =ВЫБОР($A$1;5%;10%;20%) в ячейке Е7 .

Перерасчет планов продаж ведется с помощью формулы =B11*(1+$E$7)

Для выделения выбранного сценария в диапазоне С11:С16 использовано Условное форматирование .

Имя Элемента управления

У каждого Элемента управления есть имя. Чтобы его узнать нужно выделить Переключатель , в Поле имя будет отображено его имя. Чтобы изменить имя Переключателя — введите в Поле имя новое имя Переключателя и нажмите клавишу ENTER . Также имя можно изменить в Области выделения ( Главная / Редактирование/ Найти и выделить/ Область выделения ).

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

Прячем Переключатель на листе

Включите Область выделения ( Главная / Редактирование/ Найти и выделить )

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

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

12 простых приёмов для ускоренной работы в Excel

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

Автор проекта «Планета Excel», разработчик и IT-тренер.

1. Быстрое добавление новых данных в диаграмму

Если для построенной диаграммы на листе появились новые данные, которые нужно добавить, то можно просто выделить диапазон с новой информацией, скопировать его (Ctrl + C) и потом вставить прямо в диаграмму (Ctrl + V).

2. Мгновенное заполнение (Flash Fill)

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

3. Копирование без нарушения форматов

Вы, скорее всего, знаете о волшебном маркере автозаполнения. Это тонкий чёрный крест в правом нижнем углу ячейки, потянув за который можно скопировать содержимое ячейки или формулу сразу на несколько ячеек. Однако есть один неприятный нюанс: такое копирование часто нарушает дизайн таблицы, так как копируется не только формула, но и формат ячейки. Этого можно избежать. Сразу после того, как потянули за чёрный крест, нажмите на смарт-тег — специальный значок, появляющийся в правом нижнем углу скопированной области.

Если выбрать опцию «Копировать только значения» (Fill Without Formatting), то Excel скопирует вашу формулу без формата и не будет портить оформление.

4. Отображение данных из таблицы Excel на карте

В Excel можно быстро отобразить на интерактивной карте ваши геоданные, например продажи по городам. Для этого нужно перейти в «Магазин приложений» (Office Store) на вкладке «Вставка» (Insert) и установить оттуда плагин «Карты Bing» (Bing Maps). Это можно сделать и по прямой ссылке с сайта, нажав кнопку Get It Now.

После добавления модуля его можно выбрать в выпадающем списке «Мои приложения» (My Apps) на вкладке «Вставка» (Insert) и поместить на ваш рабочий лист. Останется выделить ваши ячейки с данными и нажать на кнопку Show Locations в модуле карты, чтобы увидеть наши данные на ней. При желании в настройках плагина можно выбрать тип диаграммы и цвета для отображения.

5. Быстрый переход к нужному листу

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

6. Преобразование строк в столбцы и обратно

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

  1. Выделите диапазон.
  2. Скопируйте его (Ctrl + C) или, нажав на правую кнопку мыши, выберите «Копировать» (Copy).
  3. Щёлкните правой кнопкой мыши по ячейке, куда хотите вставить данные, и выберите в контекстном меню один из вариантов специальной вставки — значок «Транспонировать» (Transpose). В старых версиях Excel нет такого значка, но можно решить проблему с помощью специальной вставки (Ctrl + Alt + V) и выбора опции «Транспонировать» (Transpose).

7. Выпадающий список в ячейке

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

  1. Выделите ячейку (или диапазон ячеек), в которых должно быть такое ограничение.
  2. Нажмите кнопку «Проверка данных» на вкладке «Данные» (Data → Validation).
  3. В выпадающем списке «Тип» (Allow) выберите вариант «Список» (List).
  4. В поле «Источник» (Source) задайте диапазон, содержащий эталонные варианты элементов, которые и будут впоследствии выпадать при вводе.

8. Умная таблица

Если выделить диапазон с данными и на вкладке «Главная» нажать «Форматировать как таблицу» (Home → Format as Table), то наш список будет преобразован в умную таблицу, которая умеет много полезного:

  1. Автоматически растягивается при дописывании к ней новых строк или столбцов.
  2. Введённые формулы автоматом будут копироваться на весь столбец.
  3. Шапка такой таблицы автоматически закрепляется при прокрутке, и в ней включаются кнопки фильтра для отбора и сортировки.
  4. На появившейся вкладке «Конструктор» (Design) в такую таблицу можно добавить строку итогов с автоматическим вычислением.

9. Спарклайны

Спарклайны — это нарисованные прямо в ячейках миниатюрные диаграммы, наглядно отображающие динамику наших данных. Чтобы их создать, нажмите кнопку «График» (Line) или «Гистограмма» (Columns) в группе «Спарклайны» (Sparklines) на вкладке «Вставка» (Insert). В открывшемся окне укажите диапазон с исходными числовыми данными и ячейки, куда вы хотите вывести спарклайны.

После нажатия на кнопку «ОК» Microsoft Excel создаст их в указанных ячейках. На появившейся вкладке «Конструктор» (Design) можно дополнительно настроить их цвет, тип, включить отображение минимальных и максимальных значений и так далее.

10. Восстановление несохранённых файлов

Представьте: вы закрываете отчёт, с которым возились последнюю половину дня, и в появившемся диалоговом окне «Сохранить изменения в файле?» вдруг зачем-то жмёте «Нет». Офис оглашает ваш истошный вопль, но уже поздно: несколько последних часов работы пошли псу под хвост.

На самом деле есть шанс исправить ситуацию. Если у вас Excel 2010, то нажмите на «Файл» → «Последние» (File → Recent) и найдите в правом нижнем углу экрана кнопку «Восстановить несохранённые книги» (Recover Unsaved Workbooks).

В Excel 2013 путь немного другой: «Файл» → «Сведения» → «Управление версиями» → «Восстановить несохранённые книги» (File — Properties — Recover Unsaved Workbooks).

В последующих версиях Excel следует открывать «Файл» → «Сведения» → «Управление книгой».

Откроется специальная папка из недр Microsoft Office, куда на такой случай сохраняются временные копии всех созданных или изменённых, но несохранённых книг.

11. Сравнение двух диапазонов на отличия и совпадения

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

  1. Выделите оба сравниваемых столбца (удерживая клавишу Ctrl).
  2. Выберите на вкладке «Главная» → «Условное форматирование» → «Правила выделения ячеек» → «Повторяющиеся значения» (Home → Conditional formatting → Highlight Cell Rules → Duplicate Values).
  3. Выберите вариант «Уникальные» (Unique) в раскрывающемся списке.

12. Подбор (подгонка) результатов расчёта под нужные значения

Вы когда-нибудь подбирали входные значения в вашем расчёте Excel, чтобы получить на выходе нужный результат? В такие моменты чувствуешь себя матёрым артиллеристом: всего-то пара десятков итераций «недолёт — перелёт» — и вот оно, долгожданное попадание!

Microsoft Excel сможет сделать такую подгонку за вас, причём быстрее и точнее. Для этого нажмите на вкладке «Данные» кнопку «Анализ „что если“» и выберите команду «Подбор параметра» (Insert → What If Analysis → Goal Seek). В появившемся окне задайте ячейку, где хотите подобрать нужное значение, желаемый результат и входную ячейку, которая должна измениться. После нажатия на «ОК» Excel выполнит до 100 «выстрелов», чтобы подобрать требуемый вами итог с точностью до 0,001.

Если этот обзор охватил не все полезные фишки MS Excel, о которых вы знаете, делитесь ими в комментариях!