Как назначить макрос на фигуру в excel
Фигуры в VBA Excel создаются методом Shapes.AddShape.
Синтаксис метода AddShape
Shapes — выражение, возвращающее коллекцию фигур на рабочем листе, например: ActiveSheet.Shapes.
Параметры метода AddShape
Параметр | Описание |
---|---|
Type | Константа из коллекции MsoAutoShapeType, определяющая тип создаваемой фигуры. |
Left | Расстояние от левой границы фигуры до левой границы табличной части рабочего листа в пунктах.. Тип данных — Single. |
Top | Расстояние от верхней границы фигуры до верхней границы табличной части рабочего листа в пунктах.. Тип данных — Single. |
Width | Ширина фигуры по внешним границам в пунктах. |
Height | Высота фигуры по внешним границам в пунктах. |
Все параметры метода Shapes.AddShape являются обязательными.
Константы MsoAutoShapeType
Константы коллекции MsoAutoShapeType, определяющие основные типы создаваемых фигур:
Константа | Значение | Тип фигуры |
---|---|---|
msoShapeRectangle | 1 | Прямоугольник |
msoShapeParallelogram | 2 | Параллелограмм |
msoShapeTrapezoid | 3 | Трапеция |
msoShapeDiamond | 4 | Ромб |
msoShapeRoundedRectangle | 5 | Прямоугольник: скругленные углы |
msoShapeOctagon | 6 | Восьмиугольник (октаэдр) |
msoShapeIsoscelesTriangle | 7 | Равнобедренный треугольник |
msoShapeRightTriangle | 8 | Прямоугольный треугольник |
msoShapeOval | 9 | Овал |
msoShapeHexagon | 10 | Шестиугольник (гексаэдр) |
msoShapeCross | 11 | Крест |
msoShapeRegularPentagon | 12 | Пятиугольник (пентаэдр) |
msoShapeCan | 13 | Цилиндр |
msoShapeCube | 14 | Куб |
msoShapeDonut | 18 | Круг: прозрачная заливка (кольцо) |
msoShapeLightningBolt | 22 | Молния |
msoShapeSun | 23 | Солнце |
msoShapeMoon | 24 | Месяц (луна) |
msoShape5pointStar | 92 | Звезда: 5 точек (пятиконечная) |
msoShapeCloud | 179 | Облако |
Все доступные константы из коллекции MsoAutoShapeType смотрите на сайте разработчиков.
Предположим, вы создали макрос, который нужно выполнить несколько раз. Например, макросы, которые вы создали для абсолютных ссылок и относительных ссылок. Тогда вам будет легко, если вы сможете запустить макрос с помощью щелчка мыши. Вы можете сделать это, назначив макрос объекту, такому как фигура, графика или элемент управления.
В этой главе вы узнаете, как включить объект в рабочую книгу и назначить ему макрос.
Вспомните макрос, который вы создали, используя относительные ссылки. Макрос организует данные, представленные в одном столбце, в таблицу, чтобы облегчить анализ данных.
Назначение макроса для фигуры
Вы можете вставить фигуру в свой рабочий лист в значимой форме с не требующим пояснений текстом, который при нажатии запускает назначенный ей макрос.
Нажмите вкладку INSERT на ленте.
Нажмите « Фигуры» в группе «Иллюстрации».
Выберите любую из готовых фигур, которые появляются в раскрывающемся списке. Например, форма Блок-схема – Подготовка, так как вы находитесь в процессе подготовки данных.
Нажмите вкладку INSERT на ленте.
Нажмите « Фигуры» в группе «Иллюстрации».
Выберите любую из готовых фигур, которые появляются в раскрывающемся списке. Например, форма Блок-схема – Подготовка, так как вы находитесь в процессе подготовки данных.
Нарисуйте форму и отформатируйте ее.
Щелкните правой кнопкой мыши на фигуре и выберите Edit Text из выпадающего списка.
Введите текст внутри фигуры – Запустить макрос.
Щелкните правой кнопкой мыши на фигуре и выберите Edit Text из выпадающего списка.
Введите текст внутри фигуры – Запустить макрос.
- Щелкните правой кнопкой мыши на форме.
- Выберите Назначить макрос из выпадающего списка.
Откроется диалоговое окно «Назначить макрос». Щелкните имя макроса, т.е. RelativeMacro, и нажмите ОК.
Макрос присваивается фигуре.
Нажмите на ячейку, где вы должны запустить макрос, скажем, B4.
Переместите курсор (указатель) на фигуру. Курсор (указатель) изменится на палец.
Нажмите на ячейку, где вы должны запустить макрос, скажем, B4.
Переместите курсор (указатель) на фигуру. Курсор (указатель) изменится на палец.
Теперь нажмите на форму. Макрос будет работать. Просто повторите щелчки мышью, чтобы запустить макрос несколько раз, и вы закончили с задачей размещения данных в таблицу за несколько секунд.
Назначение макроса графике
Вы можете вставить изображение в лист и назначить ему макрос. Графика может быть выбрана для визуализации вашего макроса. Например, у вас может быть график таблицы, представляющий, что макрос упорядочит данные в таблицу.
- Нажмите вкладку INSERT на ленте.
- Нажмите «Изображения» в группе «Иллюстрации».
- Выберите файл, который содержит вашу графику.
Остальные шаги такие же, как и в форме, приведенной в предыдущем разделе.
Назначение макроса элементу управления
Вставка элемента управления VBA и назначение ему макроса делает вашу работу профессиональной. Элементы управления VBA можно вставить на вкладке «Разработчик» на ленте.
Нажмите вкладку РАЗРАБОТЧИК на ленте.
Нажмите « Вставить» в группе «Элементы управления».
Нажмите вкладку РАЗРАБОТЧИК на ленте.
Нажмите « Вставить» в группе «Элементы управления».
Выберите значок «Кнопка» в разделе « Элементы управления формой» из раскрывающегося списка, как показано на снимке экрана ниже.
Щелкните ячейку на листе, в которую вы хотите вставить элемент управления Button. Откроется диалоговое окно «Назначить макрос».
Нажмите на имя макроса и нажмите ОК.
Щелкните ячейку на листе, в которую вы хотите вставить элемент управления Button. Откроется диалоговое окно «Назначить макрос».
Нажмите на имя макроса и нажмите ОК.
Кнопка управления с назначенным макросом будет вставлена.
- Щелкните правой кнопкой мыши на кнопке.
- Нажмите Редактировать текст.
- Тип – Запустить макрос.
- Форматировать текст и изменить размер кнопки.
Вы можете запускать макрос любое количество раз, просто нажимая кнопку несколько раз.
Использование элементов управления форм – это простой и эффективный способ взаимодействия с пользователем. Подробнее об этом вы узнаете в главе «Взаимодействие с пользователем».
Иногда вам, возможно, придется собирать информацию повторно от других. Excel VBA предоставляет вам простой способ решения этой задачи – UserForm . Как и любая другая форма, которую вы заполняете, UserForm упрощает понимание того, какую информацию следует предоставлять. Пользовательская форма удобна для пользователя, так как предоставляемые элементы управления не требуют пояснений и сопровождаются дополнительными инструкциями, если это необходимо.
Основным преимуществом UserForm является то, что вы можете сэкономить время, которое вы тратите на то, как и как информация должна быть заполнена.
Создание пользовательской формы
Чтобы создать пользовательскую форму, выполните следующие действия:
- Нажмите вкладку РАЗРАБОТЧИК на ленте.
- Нажмите Visual Basic. Откроется окно Visual Basic для книги.
- Нажмите Вставить,
- Выберите UserForm из выпадающего списка.
Пользовательская форма появляется в правой части окна.
Понимание пользовательской формы
Разверните окно UserForm.xlsx – UserForm1.
Вы находитесь в режиме дизайна сейчас. Вы можете вставить элементы управления в пользовательскую форму и написать код для соответствующих действий. Элементы управления доступны в панели инструментов. Свойства UserForm находятся в окне свойств. UserForm1 (подпись UserForm) указывается в разделе «Формы» в проводнике проектов.
- Измените заголовок UserForm на Project Report – Daily в окне свойств.
- Измените имя пользовательской формы на ProjectReport.
Изменения отражаются в пользовательской форме, свойствах и проводнике проекта.
Элементы управления в панели инструментов
Пользовательская форма будет иметь разные компоненты. Когда вы нажимаете на любой из компонентов, вам либо будут предоставлены инструкции о том, что и как должна быть предоставлена информация, либо вам будут предоставлены варианты (варианты) для выбора. Все это обеспечивается с помощью элементов управления ActiveX в панели инструментов пользовательской формы.
Excel предоставляет два типа элементов управления – элементы управления формы и элементы управления ActiveX. Вы должны понимать разницу между этими двумя типами элементов управления.
Элементы управления формой
Элементы управления формой – это оригинальные элементы управления Excel, которые совместимы с более ранними версиями Excel, начиная с Excel версии 5.0. Элементы управления формой также предназначены для использования на листах макроса XLM.
Вы можете запускать макросы с помощью элементов управления формы. Вы можете назначить существующий макрос элементу управления, или написать или записать новый макрос. При нажатии на элемент управления макрос. Вы уже научились вставлять командную кнопку из элементов управления формы на листе для запуска макроса. Однако эти элементы управления не могут быть добавлены в пользовательскую форму.
Элементы управления ActiveX
Элементы управления ActiveX могут использоваться в пользовательских формах VBA. Элементы управления ActiveX имеют широкие свойства, которые можно использовать для настройки их внешнего вида, поведения, шрифтов и других характеристик.
У вас есть следующие элементы управления ActiveX в UserForm ToolBox –
- Указатель
- этикетка
- Текстовое окно
- Поле со списком
- ListBox
- CheckBox
- OptionButton
- Рамка
- Кнопка-переключатель
- CommandButton
- TabStrip
- MultiPage
- Полоса прокрутки
- в полях ввода
- Образ
В следующих нескольких разделах вы поймете эти элементы управления и MsgBox. Затем вы сможете выбрать, какой из этих элементов управления требуется для разработки пользовательской формы.
этикетка
Вы можете использовать ярлыки для идентификации, отображая описательный текст, такой как заголовки, подписи и / или краткие инструкции.
Текстовое окно
Вы можете использовать TextBox в виде прямоугольника для ввода, просмотра или редактирования текста. Вы также можете использовать TextBox в качестве статического текстового поля, которое представляет информацию только для чтения.
Список
Вы можете использовать список для отображения списка одного или нескольких элементов текста, из которых пользователь может выбирать. Используйте список для отображения большого количества вариантов, которые различаются по количеству или содержанию.
- Вставьте ListBox в пользовательскую форму.
- Нажмите на список.
- Введите ProjectCodes для Name в окне свойств ListBox.
Есть три типа списков –
Поле со списком с одним выбором – Поле со списком с одним выбором включает только один выбор. В этом случае поле списка напоминает группу кнопок выбора, за исключением того, что поле списка может более эффективно обрабатывать большое количество элементов.
Список выбора множественного выбора – Список списка множественного выбора включает либо один выбор, либо смежные (смежные) варианты.
Поле со списком расширенного выбора – Поле со списком расширенного выбора позволяет выбрать один, непрерывный и несмежный (или несвязанный) выбор.
Поле со списком с одним выбором – Поле со списком с одним выбором включает только один выбор. В этом случае поле списка напоминает группу кнопок выбора, за исключением того, что поле списка может более эффективно обрабатывать большое количество элементов.
Список выбора множественного выбора – Список списка множественного выбора включает либо один выбор, либо смежные (смежные) варианты.
Поле со списком расширенного выбора – Поле со списком расширенного выбора позволяет выбрать один, непрерывный и несмежный (или несвязанный) выбор.
Вы можете выбрать один из этих типов списков в окне свойств.
- Щелкните правой кнопкой мыши на пользовательской форме.
- Выберите View Code из выпадающего списка. Откроется окно кода UserForm.
- Нажмите Инициализировать в правом верхнем углу окна кода.
- Введите следующее в Private Sub UserForm_Initialize ().
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Далее вы можете написать код для действий по выбору элемента в списке. В противном случае вы можете просто отобразить выбранный текст, как в случае заполнения кода проекта в отчете.
Поле со списком
Вы можете использовать ComboBox, который объединяет текстовое поле со списком для создания выпадающего списка. Поле со списком является более компактным, чем поле со списком, но требует, чтобы пользователь щелкнул стрелку вниз, чтобы отобразить список элементов. Используйте поле со списком, чтобы выбрать только один элемент из списка.
- Вставьте ComboBox в пользовательскую форму.
- Нажмите ComboBox.
- Введите ProjectCodes2 для имени в окне свойств ComboBox.
- Щелкните правой кнопкой мыши на пользовательской форме.
- Выберите View Code из выпадающего списка.
- Откроется окно кода UserForm.
Введите следующее, как показано ниже.
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Нажмите стрелку вниз, чтобы отобразить список элементов.
Нажмите на нужный элемент, скажем, Project2016-5. Выбранная опция будет отображаться в поле со списком.
CheckBox
Вы можете использовать флажки, чтобы выбрать один или несколько параметров, которые отображаются, щелкая в полях. Параметры будут иметь метки, и вы сможете четко визуализировать, какие параметры выбраны.
Флажок может иметь два состояния:
- Выбрано (включено), помечено галочкой в поле
- Очищено (выключено), обозначено прозрачной рамкой
Вы можете использовать флажки для выбора параметров в комбинированном окне, чтобы сэкономить место. В этом случае флажок также может иметь третье состояние –
Смешанный, означающий комбинацию включенных и выключенных состояний, обозначенную черной точкой в поле. Это будет отображаться, чтобы указать несколько вариантов выбора в комбинированном окне с флажками.
Установите флажки в пользовательской форме, как показано ниже.
Смешанный, означающий комбинацию включенных и выключенных состояний, обозначенную черной точкой в поле. Это будет отображаться, чтобы указать несколько вариантов выбора в комбинированном окне с флажками.
Установите флажки в пользовательской форме, как показано ниже.
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Нажмите на поля для выбранных вами вариантов.
OptionButton
Вы можете использовать кнопку выбора, также называемую переключателем, чтобы сделать один выбор в пределах ограниченного набора взаимоисключающих вариантов. Кнопка выбора обычно содержится в групповом поле или рамке.
Кнопка выбора представлена маленьким кружком. Кнопка выбора может иметь одно из следующих двух состояний:
- Выбран (включен), обозначен точкой в круге
- Сброс (выключен), обозначается пробелом
Рамка
Вы можете использовать элемент управления кадром, также называемый групповым блоком, для группировки связанных элементов управления в один визуальный блок. Как правило, кнопки выбора, флажки или тесно связанное содержимое группируются в элементе управления фреймом.
Элемент управления фреймом представлен прямоугольным объектом с необязательной меткой.
Вставьте рамку с надписью «Выбор».
Вставьте две кнопки с надписями «Да» и «Нет» в элементе управления кадром. Опции Да и Нет являются взаимоисключающими.
Вставьте рамку с надписью «Выбор».
Вставьте две кнопки с надписями «Да» и «Нет» в элементе управления кадром. Опции Да и Нет являются взаимоисключающими.
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Нажмите на выбранный вами вариант.
Кнопка-переключатель
Вы можете использовать кнопку переключения, чтобы указать состояние, например, Да или Нет, или режим, например, включить или выключить. Кнопка чередуется между включенным и отключенным состоянием при нажатии.
Вставьте кнопку переключения на пользовательскую форму, как показано ниже –
Перейдите на вкладку «Выполнить» на ленте.
Выберите Run Sub / UserForm из выпадающего списка. По умолчанию кнопка переключения будет в активированном состоянии.
Перейдите на вкладку «Выполнить» на ленте.
Выберите Run Sub / UserForm из выпадающего списка. По умолчанию кнопка переключения будет в активированном состоянии.
Если вы снова нажмете кнопку переключения, она будет включена.
CommandButton
Вы можете использовать командную кнопку для запуска макроса, который выполняет некоторые действия, когда пользователь нажимает на него. Вы уже научились использовать командную кнопку на рабочем листе для запуска макроса.
Командная кнопка также называется кнопкой. Вставьте командную кнопку в пользовательскую форму, как показано ниже –
- Щелкните правой кнопкой мыши на кнопке.
- Введите следующий код в sub Commandbutton1_click ().
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
TabStrip
Вы можете вставить вкладку, которая напоминает вкладки Excel в пользовательской форме.
Полоса прокрутки
Вы можете использовать полосу прокрутки для прокрутки диапазона значений, щелкая стрелки прокрутки или перетаскивая поле прокрутки.
Вставьте полосу прокрутки в пользовательскую форму, нарисовав ее в нужном месте, и отрегулируйте длину полосы прокрутки.
- Щелкните правой кнопкой мыши по полосе прокрутки.
- Выберите View Code из выпадающего списка. Откроется окно кода.
- Добавьте следующую строку под sub ScrollBar1_Scroll ().
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Перетащите поле прокрутки. Текст – Значения прокрутки будут отображаться в текстовом поле, как вы указали его в качестве действия для прокрутки полосы прокрутки.
MsgBox ()
- Введите следующий код в ScrollBar1_scroll.
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Перетащите поле прокрутки.
Разработка UserForm
Теперь у вас есть понимание различных элементов управления, которые вы можете использовать в пользовательской форме. Выберите элементы управления, сгруппируйте их, если необходимо, и расположите их в пользовательской форме в соответствии с некоторой значимой последовательностью. Запишите необходимые действия в виде кода, соответствующего соответствующим элементам управления.
Обратитесь к учебнику VBA в этой библиотеке учебников для примера UserForm.
Все доступные макросы перечислены в диалоговом окне Макрос. Чтобы макрос был доступен, книга, которая его содержит, должна быть открыта. Для открытия диалогового окна Макрос выполните команду Вид ► Макросы ► Макросы (или нажмите Alt+F8). Окно Макрос содержит названия макросов в виде списка. Просто выберите нужный вам макрос и нажмите кнопку Выполнить.
Использование окна Visual Basic Editor
Вы можете выполнять макросы напрямую из VBE, хотя это, безусловно, не самый удобный метод. Нажмите Alt+F11 для активизации VBE. Затем найдите проект и модуль кода, который содержит макрос. Поместите курсор в любое место кода макроса и выберите пункт меню Run ► Run Sub/UserForm или нажмите F5.
Использование сочетаний клавиш
Когда вы начинаете запись макроса, диалоговое окно Запись макроса дает вам возможность задать сочетание клавиш. Если вы впоследствии захотите изменить его или установить сочетание клавиш для макроса, у которого его нет, выполните следующие действия.
Назначение макроса кнопке
Вы можете добавить на лист кнопку, а затем выполнять макрос, нажимая ее.
Чтобы можно было добавить кнопку на лист, должна присутствовать вкладка Разработчик. Для добавления этой вкладки выберите Файл ► Параметры. В диалоговом окне Параметры Excel перейдите в раздел Настройка ленты и в списке справа установите флажок Разработчик.
Выполните следующие шаги для добавления кнопки на лист и присвоения ей макроса.
После выполнения этих шагов нажатие кнопки приведет к запуску назначенного макроса.
Назначение макроса фигурам
Вы также можете назначать макрос фигурам на листе. Просто щелкните правой кнопкой мыши на фигуре и выберите в контекстном меню команду Назначить макрос. Выберите макрос в окне Назначить макрос объекту и нажмите кнопку ОК. После выполнения этих шагов щелчок на фигуре будет запускать макрос.
Добавление кнопки на панель быстрого доступа
Еще один способ выполнить макрос — назначить его кнопке на панели быстрого доступа.
- Щелкните правой кнопкой мыши на панели быстрого доступа и выберите Настройка панели быстрого доступа для открытия диалогового окна Параметры Excel.
- В раскрывающемся списке Выбрать команды из выберите Макросы. Появится список доступных макросов.
- Выберите макрос из списка и нажмите кнопку Добавить.
- По желанию вы можете нажать кнопку Изменить, выбрать другой значок и задать другое имя для кнопки на панели быстрого доступа.
Добавление кнопки на ленту
Excel позволяет пользователям изменять ленту, в том числе добавлять кнопки, которые запускают макросы. Однако вам необходимо добавить новую группу, так как нельзя добавить кнопку во встроенные в ленту группы. Чтобы назначить макрос кнопке на ленте, сделайте следующее.
Вкладка с инструментами, связанными с VBA Excel, называется «Разработчик». Если этой вкладки нет на вашей ленте, добавьте ее через окно «Параметры»:
- Откройте окно «Параметры» через меню «Файл».
- Выберите вкладку «Настроить ленту».
- В правой колонке установите галочку у пункта «Разработчик» и нажмите «OK».
Кнопка – элемент управления формы
Вставка кнопки на лист
- Выберите вкладку «Разработчик» и нажмите на кнопку «Вставить».
- Нажмите на значок кнопки в коллекции «Элементы управления формы».
- Кликните в любом месте на рабочем листе Excel.
- Откроется окно «Назначить макрос объекту». Нажмите «Отмена», так как макрос для этой кнопки еще не готов.
- После нажатия кнопки «Отмена», на рабочем листе появится новая кнопка из коллекции «Элементы управления формы» в режиме редактирования.
Ухватив мышкой за один из кружочков, можно изменить размер кнопки. Ухватив кнопку за границу, можно перетащить ее в другое место. Также, в режиме редактирования, можно изменить название кнопки прямо на ее поверхности.
Чтобы выйти из режима редактирования кнопки из коллекции «Элементы управления формы», кликните в любом месте на рабочем листе.
Чтобы вернуться в режим редактирования кнопки, кликните по ней правой кнопкой мыши и выберите из контекстного меню нужный пункт. Если вы хотите изменить размер или размещение кнопки перетаскиванием, кликните левой кнопкой мыши в любом месте рабочего листа. После первого клика контекстное меню закроется, а кнопка останется в режиме редактирования.
Создание процедуры для кнопки
Кнопке из коллекции «Элементы управления формы» можно назначить макрос (процедуру), размещенную в стандартном программном модуле.
Создайте или откройте файл Excel с расширением .xlsm (Книга Excel с поддержкой макросов) и перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».
Если вы не создавали ранее в этом проекте VBA стандартный программный модуль, нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.
Ссылка на модуль появится в проводнике слева. Если модуль создан ранее, дважды кликните по его ссылке в проводнике, и он откроется справа для редактирования.
В открывшемся окне добавления шаблона процедуры оставьте выбранным переключатель «Sub», вставьте в поле «Name» название процедуры «NovayaProtsedura» и нажмите «OK».
В стандартный программный модуль будет вставлен шаблон процедуры «NovayaProtsedura».
Читайте также: