Содержание
- Процедура создания
- Способ 1: автофигура
- Способ 2: стороннее изображение
- Способ 3: элемент ActiveX
- Способ 4: элементы управления формы
- Вопросы и ответы
Excel является комплексным табличным процессором, перед которым пользователи ставят самые разнообразные задачи. Одной из таких задач является создание кнопки на листе, нажатие на которую запускало бы определенный процесс. Данная проблема вполне решаема с помощью инструментария Эксель. Давайте разберемся, какими способами можно создать подобный объект в этой программе.
Процедура создания
Как правило, подобная кнопка призвана выступать в качестве ссылки, инструмента для запуска процесса, макроса и т.п. Хотя в некоторых случаях, данный объект может являться просто геометрической фигурой, и кроме визуальных целей не нести никакой пользы. Данный вариант, впрочем, встречается довольно редко.
Способ 1: автофигура
Прежде всего, рассмотрим, как создать кнопку из набора встроенных фигур Excel.
- Производим перемещение во вкладку «Вставка». Щелкаем по значку «Фигуры», который размещен на ленте в блоке инструментов «Иллюстрации». Раскрывается список всевозможных фигур. Выбираем ту фигуру, которая, как вы считаете, подойдет более всего на роль кнопки. Например, такой фигурой может быть прямоугольник со сглаженными углами.
- После того, как произвели нажатие, перемещаем его в ту область листа (ячейку), где желаем, чтобы находилась кнопка, и двигаем границы вглубь, чтобы объект принял нужный нам размер.
- Теперь следует добавить конкретное действие. Пусть это будет переход на другой лист при нажатии на кнопку. Для этого кликаем по ней правой кнопкой мыши. В контекстном меню, которое активируется вслед за этим, выбираем позицию «Гиперссылка».
- В открывшемся окне создания гиперссылки переходим во вкладку «Местом в документе». Выбираем тот лист, который считаем нужным, и жмем на кнопку «OK».
Теперь при клике по созданному нами объекту будет осуществляться перемещение на выбранный лист документа.
Урок: Как сделать или удалить гиперссылки в Excel
Способ 2: стороннее изображение
В качестве кнопки можно также использовать сторонний рисунок.
- Находим стороннее изображение, например, в интернете, и скачиваем его себе на компьютер.
- Открываем документ Excel, в котором желаем расположить объект. Переходим во вкладку «Вставка» и кликаем по значку «Рисунок», который расположен на ленте в блоке инструментов «Иллюстрации».
- Открывается окно выбора изображения. Переходим с помощью него в ту директорию жесткого диска, где расположен рисунок, который предназначен выполнять роль кнопки. Выделяем его наименование и жмем на кнопку «Вставить» внизу окна.
- После этого изображение добавляется на плоскость рабочего листа. Как и в предыдущем случае, его можно сжать, перетягивая границы. Перемещаем рисунок в ту область, где желаем, чтобы размещался объект.
- После этого к копке можно привязать гиперссылку, таким же образом, как это было показано в предыдущем способе, а можно добавить макрос. В последнем случае кликаем правой кнопкой мыши по рисунку. В появившемся контекстном меню выбираем пункт «Назначить макрос…».
- Открывается окно управление макросами. В нем нужно выделить тот макрос, который вы желаете применять при нажатии кнопки. Этот макрос должен быть уже записан в книге. Следует выделить его наименование и нажать на кнопку «OK».
Теперь при нажатии на объект будет запускаться выбранный макрос.
Урок: Как создать макрос в Excel
Способ 3: элемент ActiveX
Наиболее функциональной кнопку получится создать в том случае, если за её первооснову брать элемент ActiveX. Посмотрим, как это делается на практике.
- Для того чтобы иметь возможность работать с элементами ActiveX, прежде всего, нужно активировать вкладку разработчика. Дело в том, что по умолчанию она отключена. Поэтому, если вы её до сих пор ещё не включили, то переходите во вкладку «Файл», а затем перемещайтесь в раздел «Параметры».
- В активировавшемся окне параметров перемещаемся в раздел «Настройка ленты». В правой части окна устанавливаем галочку около пункта «Разработчик», если она отсутствует. Далее выполняем щелчок по кнопке «OK» в нижней части окна. Теперь вкладка разработчика будет активирована в вашей версии Excel.
- После этого перемещаемся во вкладку «Разработчик». Щелкаем по кнопке «Вставить», расположенной на ленте в блоке инструментов «Элементы управления». В группе «Элементы ActiveX» кликаем по самому первому элементу, который имеет вид кнопки.
- После этого кликаем по любому месту на листе, которое считаем нужным. Сразу вслед за этим там отобразится элемент. Как и в предыдущих способах корректируем его местоположение и размеры.
- Кликаем по получившемуся элементу двойным щелчком левой кнопки мыши.
- Открывается окно редактора макросов. Сюда можно записать любой макрос, который вы хотите, чтобы исполнялся при нажатии на данный объект. Например, можно записать макрос преобразования текстового выражения в числовой формат, как на изображении ниже. После того, как макрос записан, жмем на кнопку закрытия окна в его правом верхнем углу.
Теперь макрос будет привязан к объекту.
Способ 4: элементы управления формы
Следующий способ очень похож по технологии выполнения на предыдущий вариант. Он представляет собой добавление кнопки через элемент управления формы. Для использования этого метода также требуется включение режима разработчика.
- Переходим во вкладку «Разработчик» и кликаем по знакомой нам кнопке «Вставить», размещенной на ленте в группе «Элементы управления». Открывается список. В нем нужно выбрать первый же элемент, который размещен в группе «Элементы управления формы». Данный объект визуально выглядит точно так же, как и аналогичный элемент ActiveX, о котором мы говорили чуть выше.
- Объект появляется на листе. Корректируем его размеры и место расположения, как уже не раз делали ранее.
- После этого назначаем для созданного объекта макрос, как это было показано в Способе 2 или присваиваем гиперссылку, как было описано в Способе 1.
Как видим, в Экселе создать функциональную кнопку не так сложно, как это может показаться неопытному пользователю. К тому же данную процедуру можно выполнить с помощью четырех различных способов на свое усмотрение.
Еще статьи по данной теме:
Помогла ли Вам статья?
Создание, загрузка и изменение запроса в Excel (Power Query)
Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше
Power Query предлагает несколько способов создания и загрузки power querys в книгу. Вы также можете настроить параметры загрузки запроса по умолчанию в окне Параметры запроса.
Совет Чтобы упросить, сформированы ли данные на этом плане с помощью Power Query, выберите ячейку с данными, а если появится вкладка Лента контекстного запроса, данные загружаются из Power Query.
Знать, в какой среде вы сейчас? Power Query хорошо интегрирован с пользовательским интерфейсом Excel, особенно при импорте данных, работе с подключениями и редактировании таблиц, таблиц с Excel и именовых диапазонов. Чтобы избежать путаницы, важно в любой момент времени знать, в какой среде вы находитесь, в какой Excel или Power Query.
Знакомые Excel, лента и сетка |
Лента редактора Power Query и предварительный просмотр данных |
Например, работа с данными на Excel значительно отличается от Power Query. Кроме того, подключенные данные, которые вы видите на Excel, могут не работать с Power Query для их обработки. Это происходит только при загрузке данных на таблицу или в модель данных из Power Query.
Переименование я вкладок на таблицах Ямы лучше переименовывать по своему смыслу, особенно если их много. Особенно важно пояснить разницу между данными и данными, загруженными из редактора Power Query. Даже если у вас всего два листа: с таблицей Excel «Лист1»и запросом, созданным путем импорта таблицы Excel Таблица1,ее легко запутать. Всегда имеет смысл изменить названия ярлыков по умолчанию на более понятное. Например, переименуйте Лист1 в Таблицу данных и Таблицу1 в Таблицу запросов. Теперь понятно, какая вкладка с данными, а какая вкладка с запросом.
Вы можете создать запрос из импортируемых данных или пустой запрос.
Создание запроса из импортируемых данных
Это самый распространенный способ создания запроса.
-
Импорт некоторых данных. Дополнительные сведения см. в том, как импортировать данные из внешних источников.
-
Выберем ячейку в данных и выберите запрос> изменить.
Создание пустого запроса
Вы можете начать с нуля. Это можно сделать двумя способами.
-
Выберите Данные> Получить данные >из других источников > пустой запрос.
-
Выберите Данные> получить данные >запуск редактора Power Query.
На этом этапе вы можете вручную добавлять шаги и формулы, если хорошо знаете язык формул Power Query M.
Кроме того, можно выбрать команду На главная в группе Новый запрос. Выполните одно из указанных ниже действий.
-
Выберите Новый источник, чтобы добавить источник данных. Эта команда выглядит так же, как> «Получить данные» на Excel ленте.
-
Выберите Последние источники, чтобы выбрать источник данных, с помощью который вы работали. Эта команда выглядит так же, как> последние источники на Excel ленте.
-
Чтобы ввести данные вручную, выберите Ввести данные. Вы можете выбрать эту команду, чтобы попробовать редактор Power Query независимо от внешнего источника данных.
Предположим, что запрос действителен и не имеет ошибок, его можно загрузить обратно на таблицу или в модель данных.
Загрузка запроса из редактора Power Query
В редакторе Power Query сделайте следующее:
-
Чтобы загрузить на таблицу, выберите Главная> Закрыть & Загрузить > Закрыть & Загрузить.
-
Чтобы загрузить данные в модель данных, выберите Главная> Закрыть & Загрузить > Закрыть & Загрузка.
В диалоговом окне Импорт данных выберите добавить эти данные в модельданных.
Совет Иногда команда «Загрузить в» неатривна или отключена. Это может произойти при первом создании запроса в книге. В этом случае нажмите кнопку Закрыть & Загрузить, на новом > запросы данных & Connections > Запросы, щелкните запрос правой кнопкой мыши и выберите загрузить в . Кроме того, на ленте редактора Power Query выберите запрос> Загрузить в.
Загрузка запроса из области «Запросы и подключения»
В Excel может потребоваться загрузить запрос на другой таблицу или в модель данных.
-
В Excel выберите Запросы> запросы & Connections, а затем выберите вкладку Запросы.
-
В списке запросов найдите запрос, щелкните его правой кнопкой мыши и выберите загрузить в. Появится диалоговое окно Импорт данных.
-
Выберите, как вы хотите импортировать данные, а затем выберите ОК. Чтобы получить дополнительные сведения об использовании этого диалогового окна, выберите знак вопроса (?).
Существует несколько способов изменить запрос, загруженный на таблицу.
Изменение запроса на Excel данных
-
Чтобы изменить запрос, найдите ранее загруженную из редактора Power Query, выйдите ячейку в данных и выберите запрос > Изменить.
Изменение запроса в области «Запросы & подключения»
Возможно, вы & области Запросы и подключения удобнее использовать, если в одной книге много запросов и вы хотите быстро найти его.
-
В Excel выберите Запросы> запросы & Connections, а затем выберите вкладку Запросы.
-
В списке запросов найдите запрос, щелкните его правой кнопкой мыши и выберите изменить.
Изменение запроса в диалоговом окне «Свойства запроса»
-
В Excel выберите Data> Data & Connections > Запросы, щелкните запрос правой кнопкой мыши и выберите Свойства ,выберите вкладку Определение в диалоговом окне Свойства и нажмите кнопку Изменить запрос.
Совет Если вы работаете с запросом на > данных, в диалоговом окнеСвойства выберите вкладку Определение, а затем — Изменить запрос.
Модель данных обычно содержит несколько таблиц, расположенных в связи. Запрос загружается в модель данных с помощью команды Загрузить, чтобы отобразить диалоговое окно Импорт данных, а затем в поле Добавить эти данные в режим данныхl. Дополнительные сведения о моделях данных см. в дополнительных сведениях о том, какие источники данных используются в модели данных книги,Создание модели данных в Excelи Создание таблиц с помощью нескольких таблиц.
-
Чтобы открыть модель данных, выберите Power Pivot > Управление.
-
В нижней части окна Power Pivot выберите вкладку нужной таблицы.
Подтвердим, что отображается правильная таблица. Модель данных может иметь много таблиц.
-
Обратите внимание на имя таблицы.
-
Чтобы закрыть окно Power Pivot, выберите файл> Закрыть. Чтобы освободить память, может потребоваться несколько секунд.
-
Выберите > подключения & свойства >Запросы, щелкните запрос правой кнопкой мыши и выберите изменить.
-
Завершив внесение изменений в редакторе Power Query, выберите файл > Закрыть & загрузить.
Результат
Запрос на этом и в таблице в модели данных обновляются.
Если вы заметили, что загрузка запроса в модель данных занимает намного больше времени, чем загрузка на лист, проверьте действия Power Query, чтобы узнать, фильтруется ли текстовый столбец или структурированный столбец списка с помощью оператора Contains. Это действие приводит Excel повторно прогонять весь набор данных для каждой строки. Более того, Excel не могут эффективно использовать многопрочитанные выполнения. В качестве обходного решения попробуйте использовать другой оператор, например Равно или Начинает с.
Корпорация Майкрософт знает об этой проблеме и находится в стадии исследования.
Вы можете загрузить Power Query:
-
На один из них. В редакторе Power Query выберите Home> Close & Load > Close & Load.
-
В модель данных. В редакторе Power Query выберите Home> Close & Load > Close & Load To.
По умолчанию Power Query загружает запросы на новый таблицу при загрузке одного запроса и одновременно загружает несколько запросов в модель данных. Вы можете изменить поведение по умолчанию для всех книг или только для текущей книги. При настройке этих параметров Power Query не меняет результаты запроса на месте или в данных модели данных и примечаниях.
Кроме того, динамически переопределять стандартные параметры запроса можно в диалоговом окне Импорт, которое отображается после выбора параметра & Загрузитьв.
Глобальные параметры, которые применяются во всех книгах
-
В редакторе Power Query выберите Файл > параметры и параметры >параметры запроса.
-
В диалоговом окне Параметры запроса в левой части в разделе GLOBAL выберите Загрузка данных.
-
В разделе Загрузка Параметры запроса по умолчанию сделайте следующее:
-
Выберите Использовать стандартные параметры загрузки.
-
Выберите Указать настраиваемые параметры загрузкипо умолчанию, а затем выберите или отобирать параметр Загрузить на таблицу или Загрузить в модель данных.
-
Совет В нижней части диалогового окна можно выбрать восстановить параметры по умолчанию, чтобы вернуться к настройкам по умолчанию.
Параметры книги, которые применяются только к текущей книге
-
В диалоговом окне Параметры запроса в левой части в разделе ТЕКУЩАЯ КНИГА выберите Загрузка данных.
-
Выполните одно или несколько из указанных ниже действий.
-
В области Обнаружение типоввыберите или сберем для обнаружения типов столбцов и их заглавных колонок для неструктурированных источников.
По умолчанию они обнаруживаются. Если вы предпочитаете формировать данные самостоятельно, отоставьте этот параметр.
-
В области Связивыберите или отоберем создать связи между таблицами при первом добавлении в модель данных.
По умолчанию перед загрузкой в модель данных можно найти существующие связи между таблицами, например внешние ключи в реляционной базе данных, и импортировать их вместе с данными. Если вы предпочитаете делать это самостоятельно, сделайте это самостоятельно.
-
В области Связивыберите или отоберете update relationships when refreshing queries loaded to the Data Model (Связи) при обновлении запросов, загруженных в модель данных.
По умолчанию отношения не обновляются. При обновлении запросов, уже загруженных в модель данных, Power Query находит существующие связи между таблицами, например внешние ключи, в реляционной базе данных и обновляет их. Это может привести к удалению связей, созданных вручную после импорта данных, или к новым связям. Тем не менее, если вы хотите сделать это, выберите этот параметр.
-
В области Фоновыеданные выберите или отпустите разрешение предварительного просмотра данных для скачивания в фоновом режиме.
По умолчанию предварительный просмотр данных загружается в фоновом режиме. Если вы хотите сразу же видеть все данные, отобираем этот параметр.
-
См. также
Справка по Power Query для Excel
Управление запросами в Excel
Нужна дополнительная помощь?
Создание кнопки в Microsoft Excel
Смотрите также выставляется ссылкаФормыУправление всеми доступными макросами она не простои VBA и файлы одни и те следующий код: с набором элементовЗакрываем редактор, и запускаем этой же книгеТеперь после нажатия на в документе.Автор: Максим Тютюшев окна. Теперь вкладка
котором желаем расположитьExcel является комплексным табличным
Процедура создания
Karataevчерез меню производится в окне, возрвращает Вас вEnd Sub справки не переводятся же действия иSub Макрос 1() для вставки. Выбираем макрос, как и (файле), но при кнопку будет выполнятьсяПосле выбора нажмите кнопкуТабличный процессор Excel вмещает
Способ 1: автофигура
разработчика будет активирована объект. Переходим во процессором, перед которым: так можно добавить
- Вид — Панели инструментов которое можно открыть предыдущее состояние, но- тело макроса, компанией Microsoft на операции в Excel.Range(«M6»).Select первый элемент ActiveX в прошлый раз. желании можно установить тот макрос, который «ОК». в себя огромное в вашей версии вкладку пользователи ставят самые на ленту кнопку
- — Формы (View с помощью кнопки и стирает последнюю т.е. команды, которые русский язык, поэтому Любая офисная работаEnd Sub – «кнопку» (в Как видим, вследствие
- хранение в новой вы указали. ТеперьНа этом создание кнопки количество опций и Excel.«Вставка» разнообразные задачи. Одной для макроса средствами — Toolbars -Макросы (Macros) записанную команду на будут выполняться при с английскими командами
- предполагает некую «рутиннуюТочно так же можно виде серого кирпичика). введенных нами изменений книге, или в вы знаете все первым способом закончено. функций, не исключаяПосле этого перемещаемся вои кликаем по
из таких задач самой программы excel Forms)на вкладке VBA.
запуске макроса. В в меню и составляющую» — одни
Способ 2: стороннее изображение
назначить макрос диаграмме, Теперь рисуем курсором была добавлена ещё
- отдельной книге макросов. три способа, как Теперь после нажатия даже возможность создания
- вкладку значку является создание кнопкиФайл —> Параметры—>НастройкаВ Excel 2007 иРазработчик (Developer)Чтобы включить запись необходимо: данном случае макрос окнах придется смириться: и те же объектам WordArt, SmartAtr. кнопку необходимого размера. одна ячейка с
- Мы оставим значение сделать кнопку в по ней вы кнопки. На первый«Разработчик»«Рисунок» на листе, нажатие ленты —>Выбрать команды новее — откройтеили — вв Excel 2003 и
- выделяет ячейку заливаетМакросы (т.е. наборы команд еженедельные отчеты, одниДля показательного примера создайтеКнопка – элемент управления данными. Она также по умолчанию. Excel. будете переходить на
- взгляд абсолютно ненужный. Щелкаем по кнопке, который расположен на на которую запускало —>Макросы—> выберите макрос—>справа выпадающий список старых версиях Excel старше — выбрать выделенных диапазон (Selection) на языке VBA) и те же тестовую таблицу как формы. Снова переходим была включена в
- В самом нижнем полеВот мы и рассмотрели другой лист в элемент некоторым пользователям«Вставить» ленте в блоке бы определенный процесс. выберите или создайтеВставить (Insert) — через меню в меню желтым цветом (код хранятся в программных
действия по обработке на рисунке: на вкладку «Разработчик».
расчет общей суммы. настройки макросов можно три способа, как
Способ 3: элемент ActiveX
документе. Если же может быть просто, расположенной на ленте инструментов Данная проблема вполне вкладку и группу,вна вкладке
- Сервис — Макрос -Сервис — Макрос - = 6) и модулях. В любой поступивших данных, заполнениеВместо заголовков колонки таблицы Открываем меню инструментаВ случае, если макрос оставить любое подходящее в Excel сделать вы столкнулись с необходим. В этой в блоке инструментов«Иллюстрации» решаема с помощью которую нужно вставитьРазработчик (Developer)
- Макросы Начать запись затем проходит в книге Excel мы однообразных таблиц или добавим автофигуры, которые «Вставить». Теперь выбираем слишком большой, его по контексту описание активные кнопки. Как какими-либо трудностями или статье будет рассказано,«Элементы управления». инструментария Эксель. Давайте кнопку,—>Добавить>>
- (Tools — Macro -(Tools — Macro - цикле по всем можем создать любое бланков и т.д. будут служить кнопками элемент «кнопка» из выполнение может занять данного макроса. Но, можно заметить, каждый же этот метод как сделать кнопку
- . В группеОткрывается окно выбора изображения. разберемся, какими способамиVostokВыберите объект Macros) Record New Macro) ячейкам, заменяя формулы количество программных модулей
- Использование макросов и для сортировки по первой группы (такой
- значительное время. Но, это делать не из них в просто вам не в Excel и«Элементы ActiveX» Переходим с помощью можно создать подобный: Идёшь по этомуКнопка (Button)::в Excel 2007 и на значения. В и разместить там пользовательских функций позволяет столбцам таблицы.
же серый кирпичик). путем внесения ручного
Способ 4: элементы управления формы
обязательно. значительной мере отличается подошел, тогда перейдите привязать ее ккликаем по самому него в ту объект в этой адресу и получаетЗатем нарисуйте кнопку на
- Любой выделенный в списке новее — нажать конце выводится окно наши макросы. Один автоматизировать эти операции,В режиме Visual Basic Рисуем кнопку. Сразу изменения в код,Когда все настройки выполнены, друг от друга, ко второму способу, ячейке. первому элементу, который директорию жесткого диска, программе. подробнейшее руководство по листе, удерживая левую макрос можно запустить кнопку сообщения (MsgBox).
- модуль может содержать перекладывая монотонную однообразную — ALT+F11 в открывается окно для мы можем ускорить
- жмем на кнопку поэтому, ознакомившись с как в ExcelЕсли перед вами не имеет вид кнопки. где расположен рисунок,Скачать последнюю версию работе с кодом кнопку мыши. Автоматически кнопкой
Запись макроса (Record macro)С ходу ясно, что любое количество макросов. работу на плечи папке Modules вставляем назначения макроса: можно процесс. Добавляем команду «OK». каждым из них, сделать кнопку.
стоит задача создания
lumpics.ru
Три способа, как сделать кнопку в Excel
После этого кликаем по который предназначен выполнять Excel RibbonX: Дж.Уокенбах. «Профессиональное появится окно, гдеВыполнитьна вкладке вот так сразу, Доступ ко всем Excel. Другим поводом новый модуль Module1. сделать сразу, а «Application.ScreenUpdating = False».После этого, все ваши вы сможете подобрать
Автофигура
Если вы думаете, что оригинальной кнопки и любому месту на роль кнопки. ВыделяемКак правило, подобная кнопка программирование на VBA» нужно выбрать макрос,(Run)Разработчик (Developer) без предварительной подготовки модулям осуществляется с для использования макросов Для этого делаем можно попозже. Она позволит сохранить действия в данной для себя самый создавать кнопку можно
- вы не хотите
- листе, которое считаем
- его наименование и призвана выступать в стр. 687, глава который должен запускаться
- .Затем необходимо настроить параметры и опыта в помощью окна Project в вашей работе по папке правыйКнопка – автофигура. Переходим вычислительные мощности, а книге (файле) Excel оптимальный. только из штатных
- заморачиваться над сложным нужным. Сразу вслед жмем на кнопку качестве ссылки, инструмента 22. Как пример, при щелчке поКнопка записываемого макроса в программировании вообще и Explorer в левом может стать необходимость
щелчок мышкой и на вкладку «Вставка». значит ускорить работу. будут записываться вАвтор: Вадим Матузок элементов и из
- ее оформлением то за этим там«Вставить»
- для запуска процесса,
- покажу свою вкладку. нарисованной кнопке.Параметры окне на VBA в верхнем углу редактора добавить в Microsoft выбираем: Insert-Module. В меню «Иллюстрации» Это достигается путем макрос до техМакросы программы Microsoft Excel действий можно назначать проще всего сделать отобразится элемент. Каквнизу окна. макроса и т.п. Создал буквально паруСоздание пользовательских функций или,(Options)
- Запись макроса частности, сложновато будет (если его не Excel недостающие, ноДелаем двойной щелчок по
- выбираем подходящую фигуру. отказа от обновления пор, пока вы позволяют значительно ускорить лишь гиперссылку, то
- ее, используя стандартный и в предыдущих
После этого изображение добавляется Хотя в некоторых недель назад: как их иногдапозволяет посмотреть и: сообразить какие именно видно, нажмите CTRL+R). нужные вам функции. Module1 и вводим Рисуем. По готовой экрана во время сами не остановите работу с документами вы глубоко заблуждаетесь.
Собственное изображение
набор инструментов в способах корректируем его на плоскость рабочего случаях, данный объектКаждая кнопка запускает еще называют, UDF-функций отредактировать сочетание клавишИмя макроса команды и как Программные модули бывают Например функцию сборки в него следующий фигуре можно щелкнуть выполнения вычислительных действий. запись. в этом табличном
- Сейчас будет рассказано, программе. Такая кнопка
- местоположение и размеры. листа. Как и может являться просто
- конкретный макрос. Некоторые (User Defined Functions) для быстрого запуска- подойдет любое надо вводить, чтобы нескольких типов для
- данных с разных код:Sub Макрос1() правой кнопкой мыши Чтобы возобновить обновлениеДля примера, запишем простейшее
- редакторе. Это достигается как сделать кнопку будет служить своеобразной
- Кликаем по получившемуся элементу в предыдущем случае, геометрической фигурой, и из предустановленных вкладок принципиально не отличается
макроса. имя на русском макрос автоматически выполнял разных ситуаций: листов на одинActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear и изменить оформление.
Элемент ActiveX
после выполнения макроса, арифметическое действие: сложение путем автоматизации повторяющихся в Excel для гиперссылкой для перехода двойным щелчком левой
- его можно сжать, кроме визуальных целей можно вообще «убрать» от создания макросаКнопка
- или английском языке. все действия, которые,
- Обычные модули итоговый лист, разнесенияActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«A2:A6»), _Кнопка – рисунок. Переходим в его конце содержимого трёх ячеек
- действий, записанных в запуска макроса, при на другие внутренние
- кнопки мыши. перетягивая границы. Перемещаем не нести никакой
- для конкретной рабочей в обычном программномИзменить Имя должно начинаться
- например, Вы делаете- используются в данных обратно, выводSortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal на вкладку «Вставка».
- пишем команду «Application.ScreenUpdating (=C4+C5+C6).
специальный код. Давайте том кнопка будет или внешние элементы.Открывается окно редактора макросов. рисунок в ту пользы. Данный вариант, книги. модуле. Разница только
Заключение
(Edit) с буквы и для создания еженедельного большинстве случаев, когда суммы прописью иWith ActiveWorkbook.Worksheets(«Лист1»).Sort В меню «Иллюстрации» = True»После этого, жмем на разберем, как создать не обычной, а Ну, а теперь Сюда можно записать
область, где желаем,
fb.ru
Создание макросов в программе Microsoft Excel
впрочем, встречается довольноSerge_007 в том, чтооткрывает редактор Visual не содержать пробелов отчета для руководства речь идет о т.д..SetRange Range(«A2:D6») выбираем инструмент «Рисунок».Добавим также команду «Application.Calculation кнопку «Остановить запись».
макросы в программе в виде изображения,
Способы записи макросов
перейдем непосредственно к любой макрос, который
- чтобы размещался объект.
- редко.
: макрос выполняет последовательность Basic (см. выше) и знаков препинания. компании. Поэтому мы макросах. Для созданияМакрос.Apply Для выбора будут = xlCalculationManual» вначале Эта кнопка преобразовалась Excel, и как которое можно загрузить
инструкции, как в вы хотите, чтобыПосле этого к копкеПрежде всего, рассмотрим, какVostok действий с объектами и позволяет просмотретьСочетание клавиш
Автоматическая запись макросов
переходим ко второму такого модуля выберите- это запрограммированнаяEnd With
предложены варианты, которые кода, а в из кнопки «Запись их можно отредактировать. из интернета: Excel сделать кнопку:
исполнялся при нажатии можно привязать гиперссылку, создать кнопку из, cвои вкладки и книги (ячейками, формулами и отредактировать текст- будет потом способу создания макросов, в меню последовательность действий (программа,End Sub имеются на компьютере. конце кода дописываем макроса», после включения
Скачать последнюю версиюВ программе перейдите наОткройте программу. на данный объект. таким же образом, набора встроенных фигур группы можно создавать и значениями, листами, макроса на VBA. использоваться для быстрого а именно…Insert — Module
процедура), записанная на’————————————————Графический объект создан. Теперь «Application.Calculation = xlCalculationAutomatic». записи. Excel вкладку «Вставка».Перейдите на вкладку «Вставка». Например, можно записать как это было Excel. и без Джона
диаграммами и т.д.),Чтобы не запоминать сочетание запуска макроса. ЕслиМакрорекордер. В появившееся окно языке программирования VisualSub Макрос2()
нужно сделать его Этим мы вначалеДля того, чтобы проверить,
Макрос можно записать двумяНажмите по кнопке «Рисунок»,В группе инструментов «Иллюстрации» макрос преобразования текстового показано в предыдущемПроизводим перемещение во вкладкуНачиная с версии а пользовательская функция
клавиш для запуска забудете сочетание или- это небольшая нового пустого модуля
Basic for ApplicationsActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear «рабочим». макроса отключаем автоматический как работает записанный способами:
Запуск макроса
которая располагается в отыщите кнопку «Фигуры» выражения в числовой способе, а можно«Вставка» Excel 2010 это — только с макроса, лучше создать
вообще его не программа, встроенная в можно вводить команды (VBA). Мы можемActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«B2:B6»), _ пересчет результата после
макрос, кликаем вавтоматически; группе инструментов «Иллюстрации». и нажмите по формат, как на добавить макрос. В. Щелкаем по значку стало очень просто:) теми значениями, которые кнопку и назначить введете, то макрос Excel, которая переводит
на VBA, набирая запускать макрос сколькоSortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormalК примеру, написали макрос
Редактирование макроса
каждого изменения ячеек, том же блокевручную.Откроется окно файлового менеджера ней. изображении ниже. После последнем случае кликаем
«Фигуры»Vostok мы передадим ей ей нужный макрос.
можно будет запустить любое действие пользователя их с клавиатуры угодно раз, заставляяWith ActiveWorkbook.Worksheets(«Лист1»).Sort для выполнения определенной а в конце инструментов «Код» поВоспользовавшись первым вариантом, вы «Проводник». В немПоявится меню, в котором того, как макрос правой кнопкой мыши, который размещен на: И Эта великолепная
как аргументы (исходные Кнопка может быть через меню
на язык программирования
или копируя их
Excel выполнять последовательность.SetRange Range(«A2:D6») задачи. Чтобы запускать
макроса – включаем. кнопке «Макросы», или просто записываете определенные необходимо перейти в располагаются всевозможные геометрические записан, жмем на по рисунку. В ленте в блоке вкладка будет работать данные для расчета).
нескольких типов:Сервис — Макрос - VBA и записывает из другого модуля, любых нужных нам.Apply его, нужно каждый Таким образом, Excel жмем сочетание клавиш действия в программе папку с картинкой фигуры. Вам необходимо кнопку закрытия окна появившемся контекстном меню инструментов только для этойЧтобы создать пользовательскую функциюКнопка на панели инструментов Макросы — Выполнить получившуюся команду в с этого сайта
действий, которые намEnd With раз заходить в подсчитает результат только Alt+F8. Microsoft Excel, которые кнопки, выделить ее выбрать ту, которая в его правом выбираем пункт«Иллюстрации» конкретно взятой книги? для расчета, например, в Excel 2003(Tools — Macro - программный модуль. Если или еще откуда
Написание кода макроса с нуля
не хочется выполнятьEnd Sub меню «Разработчик». Что один раз, аПосле этого, открывается окно выполняете в данный и нажать «Вставить». и будет служить верхнем углу.«Назначить макрос…». Раскрывается список всевозможныхSerge_007
налога на добавленную и старше Macros — Run)
мы включим макрорекордер нибудь:
вручную.’———————————————— неудобно. Гораздо проще не будет его со списком записанных момент времени. Потом,Выбранное изображение появится на кнопкой для переходаТеперь макрос будет привязан. фигур. Выбираем ту: Нет, конечно. стоимость (НДС) откроемОткройте менюили с помощью
на запись, а
lumpics.ru
Как сделать кнопку в Excel с помощью макроса и гиперссылки
Модуль Эта книгаВ принципе, существует великоеSub Макрос3( создать «рабочую» кнопку. постоянно пересчитывать, чем макросов. Ищем макрос, можно будет воспроизвести листе программы. Измените по гиперссылке. В к объекту.
Как сделать кнопку на листе Excel
Открывается окно управление макросами. фигуру, которая, какЛента — это редактор VBA, добавимСервис — Настройка
кнопки
- затем начнем создавать- также виден множество языков программирования) ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.ClearЕсли мы использовали элемент сэкономит время. который мы записали, эту запись. Данный его расположение и данном случае мыСледующий способ очень похож
- В нем нужно вы считаете, подойдет часть Application новый модуль через(Tools — Customize)Макросы (Macros) свой еженедельный отчет, в левом верхнем (Pascal, Fortran, C++,ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«C2:C6»), _ ActiveX, то:Продвинутые пользователи могут выполнять выделяем его, и
- способ очень легкий, размер по своим будем использовать прямоугольник по технологии выполнения выделить тот макрос, более всего наVostok меню
- и перейдите нана вкладке то макрорекордер начнет углу редактора Visual C#, Java, ASP,SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormalвключаем режим конструктора (он
не только редактирование жмем на кнопку и не требует
предпочтениям.
Как в Excel сделать кнопку с макросом
со скругленными углами. на предыдущий вариант. который вы желаете роль кнопки. Например,: А моя вкладкаInsert — Module вкладкуРазработчик (Developer)
записывать команды вслед Basic в окне,
и введем тудаКоманды (Commands)или нажав ALT+F8. за каждым нашим которое называется Project всех программ пакета.SetRange Range(«A2:D6») «Разработчик»); макросов, но и
Другие варианты использования кнопок
Можно поступить ещё проще, применение его на выберите действие «НазначитьНа листе таблицы появится добавление кнопки через кнопки. Этот макрос быть прямоугольник со Конкретно Взятой Книги
текст нашей функции:. В категорииСохранить в… действием и, в
Explorer. В этот Microsoft Office стандартом.Applyщелкаем два раза кнопкой записывать код макросов и не вызывать
практике довольно ограничено. макрос». выбранный элемент. Изначально элемент управления формы. должен быть уже сглаженными углами. и не «мозолит»
Обратите внимание, что вМакросы- здесь задается итоге, мы получим модуль обычно записываются является именно встроенныйEnd With
мыши по созданной
с нуля. Для
даже окно выбора
Ручная запись макросов, наоборот,Появится окно с перечнем он вряд ли
Как сделать кнопку сортировки в Excel для таблиц
Для использования этого записан в книге.После того, как произвели
- глаза при открытии отличие от макросовлегко найти веселый место, куда будет макрос создающий отчет
- макросы, которые должны язык VBA. КомандыEnd Sub кнопке – откроется того, чтобы приступить макросов. Мы же требует знаний программирования, макросов. Вам остается
- будет подходящей формы, метода также требуется Следует выделить его нажатие, перемещаем его
других книг. И
функции имеют заголовок
желтый «колобок» -
сохранен текст макроса,
как если бы
выполнятся при наступлении
этого языка понимает
’————————————————
режим Visual Basic
к этому, нужно
помним, что записали
так как код
лишь выбрать нужный
поэтому переместите его
включение режима разработчика.
наименование и нажать
в ту область
это очень Удобно!
Function
Настраиваемую кнопку
т.е. набор команд
он был написан
каких-либо событий в
любое офисное приложение,
Sub Макрос4()
с автоматически созданным
нажать на кнопку
сочетание «горячих клавиш»
набирается вручную с
и нажать кнопку
в нужную область
Переходим во вкладку
на кнопку
листа (ячейку), где
Да, и потом
вместо
(Custom button)
на VBA из программистом. Такой способ книге (открытие или будь то Excel, - ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear пустым каркасом; «Visual Basic», которая для быстрого вызова клавиатуры. Но, грамотно
«ОК». листа (в какую-нибудь«Разработчик»«OK» желаем, чтобы находилась создана она средствамиSub: которых и состоит создания макросов не сохранение книги, печать Word, Outlook илиActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«D2:D6»), _вписываем между двумя строками расположена в самом макроса. В нашем написанный таким образом
После этого интерактивная кнопка
ячейку) и изменитеи кликаем по. кнопка, и двигаем RibbonX и VBA.и непустой списокПеретащите ее к себе
exceltable.com
Создание макросов и пользовательских функций на VBA
Введение
макрос.: требует знаний пользователя файла и т.п.): Access.SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal команду для вызова начале ленты разработчика. случае, это Ctrl+М. код, может значительно будет создана, соответственно, размер, используя специальные знакомой нам кнопкеТеперь при нажатии на границы вглубь, чтобы (Согласно теме данной аргументов (в нашем на панель инструментовЭта книга о программировании иМодуль листаДля ввода команд иWith ActiveWorkbook.Worksheets(«Лист1»).Sort макроса.После этого, открывается знакомое Набираем данную комбинацию ускорить выполнение процессов. на нее вы маркеры на четырех«Вставить» объект будет запускаться объект принял нужный ветки — «Вопросы случае это и затем щелкните- макрос сохраняется
VBA и позволяет- доступен через формирования программы, т.е..SetRange Range(«A2:D6″)Для других графических объектов нам окно редактора на клавиатуре, послеПрежде, чем начать автоматическую можете назначить и сторонах прямоугольника., размещенной на ленте выбранный макрос. нам размер. по VBA»).
Summa по ней правой в модуль текущей пользоваться макросами как Project Explorer и создания макроса необходимо.Apply макрос назначается так VBE. чего макрос запускается. запись макросов, нужно гиперссылку, как этоПосле изменения размера и в группе
Способ 1. Создание макросов в редакторе Visual Basic
Урок:Теперь следует добавить конкретноеSerge_007). После ввода кода кнопкой мыши. В книги и, как неким аналогом видеозаписи:
- через контекстное меню открыть специальное окноEnd With же. Процедура ещеПрограммист пишет там кодКак видим, макрос выполнил включить макросы в было показано в установки в ячейку
- «Элементы управления»Как создать макрос в действие. Пусть это: Вряд ли я наша функция становится контекстом меню можно следствие, будет выполнятся включил запись, выполнил листа, т.е. правой — редактор программEnd Sub Примечание. проще. Нужно щелкнуть макроса вручную. в точности все программе Microsoft Excel. первом способе. нашей своеобразной кнопке. Открывается список. В Excel будет переход на когда-либо смогу оценить доступна в обычном назначить кнопке макрос,
только пока эта
операци, перемотал пленку кнопкой мыши по на VBA, встроенный Красным текстом отмечены правой кнопкой мышиКак видим, макросы в те действия, которыеДалее, переходим во вкладку
Мы уже разобрали два можно задать действие, нем нужно выбратьНаиболее функциональной кнопку получится другой лист при удобство вкладки только окне Мастера функций выбрать другой значок книга открыта в и запустил выполнение ярлычку листа - в Microsoft Excel. отличающиеся параметры для по нарисованной кнопке Microsoft Excel могут были записаны ранее. «Разработчик». Кликаем по способа, как сделать которое будет происходить первый же элемент, создать в том
«Элементы управления формы» элемент ActiveX. Посмотрим, кнопкой мыши. В
08:50, в сообщенииОпределенные пользователем (User Defined) 2007 и новее в шаблон, на есть свои плюсы
- которые должны выполняться в меню – Макрос1, аС помощью кнопок в большинстве случаев, для В открывшемся окне инструментов «Код». от предыдущих: по прямоугольнику.. Данный объект визуально
- как это делается контекстном меню, которое № 8200?’200px’:»+(this.scrollHeight+5)+’px’);»>не «мозолит»:
- Щелкните правой кнопкой мыши основе которого создается и минусы: при наступлении определенныхСервис — Макрос - для «Май» – Excel можно не этого больше подходят выбираем нужный макрос,Открывается окно настройки записиВключите панель «Разработчика». ДляВыберите пункт «Гиперссылка». выглядит точно так на практике. активируется вслед за глаза при открытииПосле выбора функции выделяем по панели быстрого любая новая пустая
Макрорекордер записывает только те событий на листе Редактор Visual Basic Макрос2 и т.д. только выполнять созданные макросы, код которых и кликаем по макроса. Тут можно этого в параметрахВ появившемся окне вам же, как иДля того чтобы иметь этим, выбираем позицию других книгСобственно говоря, ячейки с аргументами доступа в левом книга в Excel, действия, которые выполняются (изменение данных в
Способ 2. Запись макросов макрорекордером
(Toos — Macro -Все теперь достаточно только макросы, но и написан вручную, а кнопке «Изменить». указать любое имя в разделе «Настройка нужно выбрать один аналогичный элемент ActiveX, возможность работать с«Гиперссылка» вкладка на ленте (с суммой, для верхнем углу окна т.е. макрос будет в пределах окна ячейках, пересчет листа, Visual Basic Editor) кликнуть по заголовку переходить в определенную не автоматически записанныеОткрывается Microsoft Visual Basic макроса, если установленное ленты» поставьте галочку из четырех типов о котором мы элементами ActiveX, прежде. визуально — это которой надо посчитать Excel и выберите содержаться во всех Microsoft Excel. Как копирование или удаление. и таблица отсортирует
- ячейку, другой документ, действия. Кроме того, (VBE) – среда, по умолчанию вас напротив пункта «Разработчик». ссылки. Вы можете говорили чуть выше. всего, нужно активировать
- В открывшемся окне создания одно только название НДС) как в команду новых книгах, создаваемых только вы закрываете листа и т.д.)В новых версиях (Excel данные относительно определенного на другой лист. код макроса можно где происходит редактирование
- не устраивает. Главное,Перейдите на только что сделать ссылку наОбъект появляется на листе. вкладку разработчика. Дело гиперссылки переходим во вкладки. Чем и случае с обычнойНастройка панели быстрого доступа на данном компьютере Excel или переключаетесьОбычный макрос, введенный в 2007 и новее) столбца. Для удобства Рассмотрим подробнее.
оптимизировать через редактор
- макросов. чтобы имя это добавленную вкладку «Разработчик». внешний файл или Корректируем его размеры в том, что вкладку
- как оно может функцией: (Customise Quick Access начиная с текущего в другую программу стандартный модуль выглядит
для этого нужно столбец «Наименование» Макрос1Нарисуем графический объект и VBE для ускоренияЗапись каждого макроса начинается
- начиналось с буквы,Нажмите по кнопке «Вставить» интернет-ресурс, выбрав пункт и место расположения, по умолчанию она«Местом в документе» «мозолить» глаза -Макрописец
- Toolbar) момента — запись останавливается. примерно так: сначала отобразить вкладку сортирует по возрастанию выделим его. На процесса выполнения задачи. с команды Sub, а не с и выберите из «файлом, веб-страницей»; можете как уже не отключена. Поэтому, если. Выбираем тот лист, мне тоже непонятно: Здравствуйте.:Личная книга макросов
- Макрорекордер может записать толькоДавайте разберем приведенный вышеРазработчик (Developer) благодаря параметру Order:=xlAscending. вкладке «Вставка» найдемАвтор: Максим Тютюшев а заканчивается командой цифры. Также, в
-
- выпадающего меню в сделать ссылку на раз делали ранее. вы её до который считаем нужным,ЦитатаМного читал наЗатем в открывшемся окне
- - это специальная те действия, для в качестве примера. Выбираем Во всех остальных кнопку «Гиперссылка».Кнопка в Excel как End Sub. Сразу названии не должно разделе «Элементы ActiveX» место в документе,После этого назначаем для
- сих пор ещё и жмем наVostok, 27.06.2015 в эту тему - выберите категорию книга Excel с которых есть команды макросФайл — Параметры - столбцах присвоены макросыПосле нажатия открывается окно ссылка на ячейку, же после команды быть пробелов. Мы первый пункт, который
выбрав одноименный пункт; созданного объекта макрос, не включили, то кнопку 08:50, в сообщении везде говорится какМакросы
Запуск и редактирование макросов
именем меню или кнопкиZamena Настройка ленты (File (2,3,4) с параметром для создания связи какой-либо инструмент, созданный Sub указывается имя оставили название по имеет вид кнопки. можно также сослаться как это было переходите во вкладку«OK» № 8200?’200px’:»+(this.scrollHeight+5)+’px’);»>…создана она
- сделать кнопку конструктороми при помощиPersonal.xls в Excel. Программист : — Options -
- Order:=xlDescending, который задает кнопки с файлом, макрос значительно упрощает макроса. Оператор «Range(«…»).Select» умолчанию – «Макрос1».Кликните по любому месту на другой документ
- показано в«Файл» . средствами RibbonX и и как добавить кнопки, которая используется как же может написать
Создание кнопки для запуска макросов
Любой макрос должен начинаться Customize Ribbon) тип сортировки по веб-страницей, электронной почтой, работу в программе. указывает выбор ячейки.Тут же, при желании,
на листе для и на электроннуюСпособе 2
, а затем перемещайтесьТеперь при клике по VBAА штатная создается кнопку в панельДобавить (Add) хранилище макросов. Все макрос, который делает с оператораи включаем в убыванию. Чтобы видно новым документом, местом Чаще всего это Например, при команде
можно установить сочетание вставки кнопки. почту. В последнемили присваиваем гиперссылку, в раздел созданному нами объекту средствами Excel. Процитируйте, быстрого доступа. Аперенесите выбранный макрос
макросы из то, что ExcelSub
правой части окна было, в каком в текущем документе. графический объект с «Range(«C4»).Select» выбирается ячейка клавиш, при нажатииПри желании можете изменить случае после нажатия как было описано«Параметры»
будет осуществляться перемещение пожалуйста, текст топика, вот про ленту в правую половинуPersonal.xls никогда не умел, за которым идет флажок месяце было большеДостаточно выбрать необходимый вариант
назначенным макросом или
C4. Оператор «ActiveCell.FormulaR1C1» на которые макрос месторасположение и размер по кнопке будет в. на выбранный лист
- в котором автор — ничего.Можно ли окна, т.е. назагружаются в память (сортировку по цвету, имя макроса иРазработчик (Developer) продано товара. и прописать к
- гиперссылкой. Рассмотрим, как используется для записи будет запускаться. Первой элемента. создано новое письмоСпособе 1В активировавшемся окне параметров
документа. просит решить задачу
в Excel 2010 панель быстрого доступа: при старте Excel например или что-то список аргументов (входных. Теперь на появившейсяСкачать пример кнопки сортировки нему путь. Этот
Создание пользовательских функций на VBA
сделать такую кнопку. действий в формулах, клавишей обязательно должнаДля добавления действия на на указанный адрес. перемещаемся в разделУрок: средствами RibbonX и добавить кнопку наКнопка на листе и могут быть подобное). значений) в скобках. вкладке нам будутПримечание. Такие простые макросы способ не требуетСуть работы: создать графический и для других быть клавиша Ctrl,
кнопку кликните по почты.Как видим, в Экселе«Настройка ленты»Как сделать или удалить VBA ленту, и еслиЭтот способ подходит для запущены в любойЕсли во время записи
Если аргументов нет, доступны основные инструменты можно создать в написания макросов и объект и назначить расчетов. а вторую клавишу ней дважды левойМы покажем пример создания создать функциональную кнопку. В правой части гиперссылки в ExcelЦитата да — то любой версии Excel. момент и в макроса макрорекордером вы то скобки надо для работы с
автоматическом режиме без предоставляет пользователю широкие для него макросПопытаемся немного изменить макрос. пользователь устанавливает самостоятельно. кнопкой мыши. со ссылкой на
planetaexcel.ru
Вставка кнопки макроса на ленту в Excel 2010 (Макросы/Sub)
не так сложно, окна устанавливаем галочку
В качестве кнопки можноVostok, 27.06.2015 в как? Мы добавим кнопку любой книге. ошиблись — ошибка оставить пустыми. макросами, в том программирования или без возможности. или гиперссылку. Рассмотрим Для этого, в Например, мы, вОткроется окно с полем
место в документе. как это может около пункта
также использовать сторонний 08:50, в сообщенииSerge_007 запуска макроса прямоПосле включения записи и
будет записана. ОднакоЛюбой макрос должен заканчиваться числе и нужная написания VBA-кода, сПодобные задачи можно выполнять
подробнее. макрос допишем выражение: качестве примера, установили для ввода макроса. Кликаем по одноименной показаться неопытному пользователю.«Разработчик»
рисунок. № 8200?’200px’:»+(this.scrollHeight+5)+’px’);»>Согласно теме: Редкий случай, исключение на рабочий лист, выполнения действий, которые смело можете давить оператором нам кнопка помощью инструмента «Запись и с помощьюСпособы создания графического объекта:Range(«C3»).Select
клавишу М. В него вы кнопке. К тому же, если она отсутствует.Находим стороннее изображение, например,
данной ветки - из правил как графический объект. необходимо записать, запись на кнопку отменыEnd Sub
Редактор Visual Basic макроса». макросов. Например, чтобы
Кнопка – элемент ActiveX.ActiveCell.FormulaR1C1 = «11»Далее, нужно определить, где можете прописать любоеВ соответствующем меню вы
данную процедуру можно Далее выполняем щелчок
в интернете, и «Вопросы по VBA»Насчет
Этот топик невозможно Для этого: можно остановить командой последнего действия (Undo).(Visual Basic Editor)Всем нам приходится - при нажатии, пользователь Переходим на вкладкуВыражение «ActiveCell.FormulaR1C1 = «=R[-3]C+R[-2]C+R[-1]C»» будет храниться макрос. необходимое действие. можете указать адрес выполнить с помощью
по кнопке скачиваем его себе расположения темы - поделить на категории,В Excel 2003 и
Остановить запись — во времяВсе, что находится между: кому реже, кому попадал в определенную «Разработчик». Нажимаем кнопку заменим на «ActiveCell.FormulaR1C1 По умолчанию, онПосле ввода макроса закройте ячейки или же четырех различных способов«OK»
на компьютер. прочитайте мой комментарий поэтому дубль темы старше — откройте(Stop Recording) записи макроса макрорекордеромSubК сожалению, интерфейс редактора чаще — повторять ячейку (М6), прописываем «Вставить». Открывается меню = «= R[-4]C+R[-3]C+R[-2]C+R[-1]C»».
будет храниться в окно. определить другое место на свое усмотрение.в нижней частиОткрываем документ Excel, в к топику не удаляется, а панель инструментов
excelworld.ru
.
Вставка командной кнопки на рабочий лист для начинающих программировать с нуля. Кнопки из коллекций «Элементы управления формы» и «Элементы ActiveX».
Начинаем программировать с нуля
Часть 3. Первая кнопка
[Часть 1] [Часть 2] [Часть 3] [Часть 4]
Добавление вкладки «Разработчик»
Вкладка с инструментами, связанными с VBA Excel, называется «Разработчик». Если этой вкладки нет на вашей ленте, добавьте ее через окно «Параметры»:
Порядок действий:
- Откройте окно «Параметры» через меню «Файл».
- Выберите вкладку «Настроить ленту».
- В правой колонке установите галочку у пункта «Разработчик» и нажмите «OK».
Кнопка – элемент управления формы
Вставка кнопки на лист
- Выберите вкладку «Разработчик» и нажмите на кнопку «Вставить».
- Нажмите на значок кнопки в коллекции «Элементы управления формы».
- Кликните в любом месте на рабочем листе Excel.
- Откроется окно «Назначить макрос объекту». Нажмите «Отмена», так как макрос для этой кнопки еще не готов.
- После нажатия кнопки «Отмена», на рабочем листе появится новая кнопка из коллекции «Элементы управления формы» в режиме редактирования.
Ухватив мышкой за один из кружочков, можно изменить размер кнопки. Ухватив кнопку за границу, можно перетащить ее в другое место. Также, в режиме редактирования, можно изменить название кнопки прямо на ее поверхности.
Чтобы выйти из режима редактирования кнопки из коллекции «Элементы управления формы», кликните в любом месте на рабочем листе.
Чтобы вернуться в режим редактирования кнопки, кликните по ней правой кнопкой мыши и выберите из контекстного меню нужный пункт. Если вы хотите изменить размер или размещение кнопки перетаскиванием, кликните левой кнопкой мыши в любом месте рабочего листа. После первого клика контекстное меню закроется, а кнопка останется в режиме редактирования.
Создание процедуры для кнопки
Кнопке из коллекции «Элементы управления формы» можно назначить макрос (процедуру), размещенную в стандартном программном модуле.
Создайте или откройте файл Excel с расширением .xlsm (Книга Excel с поддержкой макросов) и перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».
Если вы не создавали ранее в этом проекте VBA стандартный программный модуль, нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.
Ссылка на модуль появится в проводнике слева. Если модуль создан ранее, дважды кликните по его ссылке в проводнике, и он откроется справа для редактирования.
Нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.
В открывшемся окне добавления шаблона процедуры оставьте выбранным переключатель «Sub», вставьте в поле «Name» название процедуры «NovayaProtsedura» и нажмите «OK».
В стандартный программный модуль будет вставлен шаблон процедуры «NovayaProtsedura».
Вставьте внутрь шаблона процедуры следующий код:
‘Записываем в ячейку A1 число 44 Cells(1, 1) = 44 ‘Записываем в ячейку B1 число 56 Cells(1, 2) = 56 ‘Записываем в ячейку C1 формулу, которая ‘вычисляет сумму значений ячеек A1 и B1 Cells(1, 3) = «=A1+B1» |
На этом процедура (подпрограмма, макрос) для кнопки готова.
Назначение макроса кнопке
Кликните правой кнопкой мыши по кнопке на рабочем листе и в контекстном меню выберите строку «Назначить макрос…», откроется окно «Назначить макрос объекту».
Выберите в списке процедуру «NovayaProtsedura» и нажмите «OK». Кликните левой кнопкой мыши по рабочему листу, чтобы командная кнопка вышла из режима редактирования.
Теперь можете нажать созданную кнопку из коллекции «Элементы управления формы» для проверки ее работоспособности.
Кнопка – элемент ActiveX
Вставка кнопки на лист
- Выберите вкладку «Разработчик» и нажмите на кнопку «Вставить».
- Нажмите на значок кнопки в коллекции «Элементы ActiveX».
- Кликните по рабочему листу и кнопка из коллекции «Элементы ActiveX» появится рядом с курсором.
- Автоматически включится режим редактирования, включение и отключение которого осуществляется кнопкой «Режим конструктора».
Ухватив кнопку за кружок, можно изменить ее размер, а ухватив за границу – перетащить на другое место. Чтобы отредактировать наименование кнопки, нужно кликнуть на ней правой кнопкой мыши и в контекстном меню выбрать «Объект CommandButton» > «Edit».
Добавление процедуры
Кликните дважды по кнопке из коллекции «Элементы ActiveX» левой кнопкой мыши в режиме конструктора. Это приведет к открытию модуля листа, на который вставлена кнопка, и записи шаблона процедуры «CommandButton1_Click».
Вставьте внутрь шаблона процедуры код, который будет очищать ячейки A1, B1 и C1:
Перейдите на рабочий лист и, если кнопка «Режим конструктора» затемнена, нажмите на нее, чтобы выйти из режима редактирования. После этого нажмите кнопку «CommandButton1», и она очистит ячейки, заполненные ранее нажатием кнопки «Кнопка 1».
Теперь кнопка из коллекции «Элементы управления формы» (Кнопка 1) будет заполнять ячейки диапазона «A1:C1», а кнопка из коллекции «Элементы ActiveX» (CommandButton1) очищать их.
Хитрости »
19 Октябрь 2014 101524 просмотров
Работа с диалогами
Несомненно каждый разработчик делает работу простого пользователя хоть немного, но проще. И конечно, порой просто необходима обратная связь от пользователя при выполнении некоторых программ. О ней и хочу сегодня рассказать.
Что я имею ввиду: есть ситуации, когда необходимо:
- сообщить пользователю о выполнении кода;
- получить от пользователя подтверждение на выполнение того или иного действия;
- запросить какие-то данные(число, текст для поиска, диапазон поиска и т.п.).
Простейшие запросы и подтверждения можно сделать при помощи уже встроенных диалоговых окон.
Из основных можно выделить три типа:
MsgBox — окно информирования пользователя с возможностью запроса действия (Да, Нет, Отмена и т.п.);
InputBox — окно запроса текстовой информации от пользователя (текст для поиска, дата, число и т.п.);
Application.InputBox — чуть более расширенная версия InputBox с возможностью указания не только текста и чисел, но и выделения диапазона ячеек (например для указания ячеек, в которых осуществлять поиск значения или которые необходимо закрасить).
- Информационный диалог MsgBox
- MsgBox, автоматически закрываемый по истечении указанного времени
- Диалог ввода информации пользователем InputBox
- Диалог выбора диапазона Application.InputBox
Самый простой тип. Используется для информирования пользователя. Как правило применяется по окончании выполнения кода:
MsgBox Promt, [Buttons], [Title], [HelpFile], [Context]
Обязательным к указанию является только первый параметр —
Promt
, в котором указывается непосредственно сообщение для вывода:
MsgBox "Обработка завершена"
Все остальные параметры указывать не обязательно, но их использование несколько расширяет возможности данного диалогового окна.
Buttons — указывается тип выводимых кнопок и стиль окна. По умолчанию применяется vbOKOnly — одна только кнопка Ок:
'показываем окно с кнопкой по умолчанию и типом важного сообщения MsgBox "Обработка завершена", vbCritical
Доступны значения:
Значение | Числовая константа | Описание |
---|---|---|
vbOKOnly | 0 | Отображает только кнопку OK |
vbOKCancel | 1 | Отображает кнопки ОК и Отмена |
vbAbortRetryIgnore | 2 | Отображает кнопки Прервать, Повтор и Пропустить |
vbYesNoCancel | 3 | Отображает кнопки Да, Нет и Отмена |
vbYesNo | 4 | Отображает кнопки Да и Нет |
vbRetryCancel | 5 | Отображает кнопки Повтор и Отмена |
vbCritical | 16 | Отображает значок важного сообщения |
vbQuestion | 32 | Отображает значок важного запроса |
vbExclamation | 48 | Отображает значок предупреждающего сообщения |
vbInformation | 64 | Отображает значок информационного сообщения |
vbDefaultButton1 | 0 | По умолчанию выделена первая кнопка |
vbDefaultButton2 | 256 | По умолчанию выделена вторая кнопка |
vbDefaultButton3 | 512 | По умолчанию выделена третья кнопка |
vbDefaultButton4 | 768 | По умолчанию выделена четвертая кнопка |
vbApplicationModal | 4098 | Все приложения приостанавливают свою работу до момента, пока пользователь ответит на запрос в окне сообщения (работает не во всех случаях) |
vbMsgBoxHelpButton | 16384 | Показываются кнопки Ок и Help |
Константы Buttons могут быть объединены между собой. Ниже приведен код, который показывает диалоговое окно с возможностью выбора одного из трех вариантов — Прервать, Повтор, Пропустить:
'--------------------------------------------------------------------------------------- ' Procedure : test ' DateTime : 19.10.2014 19:24 ' Author : The_Prist(Щербаков Дмитрий) ' WebMoney - R298726502453; Яндекс.Деньги - 41001332272872 ' http://www.excel-vba.ru ' Purpose : Процедура показывает диалоговое окно с возможностью выбора одного из трех вариантов: ' Прервать, Повтор, Пропустить ' По умолчанию выделена кнопка Прервать, т.к. иное не указано '--------------------------------------------------------------------------------------- Sub test() Dim lRetVal As Long 'для получения выбранного значения Retry_: lRetVal = MsgBox("Обработка завершена", vbAbortRetryIgnore + vbQuestion) Select Case lRetVal Case vbAbort '3/Прервать/Abort Exit Sub 'выходим из процедуры Case vbRetry '4/Повтор/Retry GoTo Retry_ 'переход на метку Retry_ Case vbIgnore '5/Пропустить/Ignore End Select End Sub
Следующий код показывает то же окно, но по умолчанию выделяет кнопку Пропустить
'--------------------------------------------------------------------------------------- ' Procedure : test ' DateTime : 19.10.2014 19:24 ' Author : The_Prist(Щербаков Дмитрий) ' WebMoney - R298726502453; Яндекс.Деньги - 41001332272872 ' http://www.excel-vba.ru ' Purpose : Процедура показывает диалоговое окно с возможностью выбора одного из трех вариантов: ' Прервать, Повтор, Пропустить ' По умолчанию выделена кнопка Пропустить(3-я по счету - значит vbDefaultButton3) '--------------------------------------------------------------------------------------- Sub test() Dim lRetVal As Long 'для получения выбранного значения Retry_: lRetVal = MsgBox("Обработка завершена", vbAbortRetryIgnore + vbQuestion + vbDefaultButton3) Select Case lRetVal Case vbAbort '3/Прервать/Abort Exit Sub 'выходим из процедуры Case vbRetry '4/Повтор/Retry GoTo Retry_ 'переход на метку Retry_ Case vbIgnore '5/Пропустить/Ignore End Select End Sub
Вместо текстового представления констант можно применить их числовые значения:
Sub test() Dim lRetVal As Long 'для получения выбранного значения Retry_: lRetVal = MsgBox("Обработка завершена", 2 + 32 + 512) Select Case lRetVal Case 3 'vbAbort Exit Sub 'выходим из процедуры Case 4 'vbRetry GoTo Retry_ 'переход на метку Retry_ Case 5 'vbIgnore End Select End Sub
Нетрудно после этого предположить, что можно указать просто сумму данных чисел:
MsgBox "Обработка завершена", 546
Доступные константы значений возврата:
Константа | Значение | Нажатая кнопка |
---|---|---|
vboK | 1 | ОК |
vbCancel | 2 | Отмена |
vbAbort | 3 | Прервать |
vbRetry | 4 | Повтор |
vblgnore | 5 | Пропустить |
vbYes | 6 | Да |
vbNo | 7 | Нет |
Title — указывается текст заголовка окна. Например, можно указать либо что это ошибка, либо имя своего приложения:
MsgBox "Обработка завершена", vbOKOnly, "Мое приложение"
HelpFile — указывается имя файла-справки в формате HLP. Применяется, если параметр Buttons указан как vbMsgBoxHelpButton. Файл справки должен существовать.
Context — целое число. Указывается индекс страницы файла-справки, которую необходимо открыть. Указывается только если указан параметр HelpFile.
Небольшой практический пример применения простого диалогового окна MsgBox.
Цель процедуры(макроса): очистить все ячейки листа.
Согласитесь, что неплохо бы перед этим запросить у пользователя решение — он согласен с этим и это является обдуманным решением или случайностью?
'--------------------------------------------------------------------------------------- ' Procedure : ClearRange ' DateTime : 19.10.2014 20:06 ' Author : The_Prist(Щербаков Дмитрий) ' WebMoney - R298726502453; Яндекс.Деньги - 41001332272872 ' http://www.excel-vba.ru ' Purpose : '--------------------------------------------------------------------------------------- Sub ClearRange() Dim lRetVal As Long 'для получения выбранного значения lRetVal = MsgBox("Все данные выделенных ячеек будут удалены." & _ Chr(10) & "Действительно хотите продолжить?", _ vbYesNo + vbQuestion, "Запрос на выполнение") If lRetVal = vbNo Then Exit Sub 'выходим из процедуры без выполнения End If Selection.Clear End Sub
Так же на странице Полезные программы для Excel и VBA можно найти программу MsgBox Generator, которая просто и наглядно формирует коды показа MsgBox.
Диалог MsgBox удобен, если надо проинформировать пользователя о каких-то событиях или предоставить ему выбор Да или Нет. Но в тоже время есть один недостаток: этот диалог не закроется, пока пользователь не нажмет хоть какую-то кнопку. Но бывает необходимо просто проинформировать и закрыть окно независимо от реакции пользователя. Показали окно, подождали секунд 5-7 и даже если пользователь ничего не нажал — закрыли окно и продолжили выполнение кода. Стандартно такой опции в MsgBox нет. Однако можно использовать функции API(это встроенные в ОС Windows функции, которые можно вызывать из любого языка программирования).
Код такого диалога:
Declare Function MessageBoxTimeOut Lib "User32" Alias "MessageBoxTimeoutA" _ (ByVal hwnd As Long, ByVal lpText As String, _ ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, _ ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long Sub AutoCloseMsgBox() Const lSeconds As Long = 5 MessageBoxTimeOut 0, "Отчет сформирован. Это окно закроется автоматически через 5 секунд", "www.excel-vba.ru", _ vbInformation + vbOKOnly, 0&, lSeconds * 1000 End Sub
Основную роль здесь играет строка:
Declare Function MessageBoxTimeOut Lib "User32" Alias "MessageBoxTimeoutA" _ (ByVal hwnd As Long, ByVal lpText As String, _ ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, _ ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long
это и есть сама функция, создающая MsgBox.
Главное: эта строка должна располагаться в самом верху стандартного модуля(в области объявлений, перед всеми процедурами и функциями).
Так же следует помнить, что это функция API и в некоторых версиях Excel именно в таком виде может не работать — вся строка будет подсвечена красным. Если проявился такой эффект, то можно просто добавить ключевое слово PtrSafe, отвечающее за совместимость функции с 64-битными ОС:
Declare PtrSafe Function MessageBoxTimeOut Lib "User32" Alias "MessageBoxTimeoutA" _ (ByVal hwnd As Long, ByVal lpText As String, _ ByVal lpCaption As String, ByVal uType As VbMsgBoxStyle, _ ByVal wLanguageId As Long, ByVal dwMilliseconds As Long) As Long
Помимо очевидного текста сообщения и заголовка, который можно заменить на свой, главное внимание уделим константе lSeconds. Она отвечает за количество секунд показа сообщения. В примере выше сообщение будет показано на 5 секунд, после чего закроется само собой, если ранее не была нажата кнопка Ок.
Если необходимо показать сообщение на 10 секунд, то надо лишь заменить 5 на 10:
Const lSeconds As Long = 10
Параметр uType работает точно так же, как параметр Buttons у стандартного MsgBox. Т.е. можно комбинировать различные виды кнопок и использовать этот MsgBox как стандартный, но при этом закрыть его автоматически, если пользователь случайно «уснул» или ему лень/некогда что-то нажимать:
Sub AutoCloseMsgBox() Const lSeconds As Long = 10 Dim retval retval = MessageBoxTimeOut(0, "Файлы обработаны. Вывести список?" & vbNewLine & _ "Если действие не будет выбрано окно закроется через 10 секунд", "www.excel-vba.ru", _ vbInformation + vbYesNo, 0&, lSeconds * 1000) If retval = 6 Then 'была нажата кнопка Да(Yes) 'выводим отчет Else 'была нажата кнопка Нет(No) или окно закрылось само 'другое действие End If End Sub
InputBox
позволяет запросить от пользователя любую текстовую информацию.
InputBox Promt, [Title], [DefaultValue], [XPos], [YPos], [HelpFile], [Context]
Так же как и с MsgBox обязательным аргументом для указания является только
Promt
— это тот текст, который будет расположен непосредственно на самой форме диалога. Как правило это пояснение, что должен ввести пользователь.
Dim vRetVal 'для получения выбранного значения vRetVal = InputBox("Укажите значение для поиска:", "Запрос данных", "") If vRetVal = "" Then Exit Sub 'завершаем процедуру, если строка пуста
Title — текст, отображаемый в заголовке окна. В приведенном выше примере это «Запрос данных».
DefaultValue — значение, которое будет показано в поле ввода до указания значения пользователем. Как правило оно указывается в случаях, когда требуемое значение изменяется редко по запросу пользователя, но возможность такую оставить все же требуется.
Пример: необходимо по нажатию кнопки удалять всегда столбец 5. Но иногда столбец в отчете смещается и требуется запрашивать у пользователя реальный номер столбца:
Sub DelCols() Dim vRetVal 'для получения выбранного значения vRetVal = InputBox("Укажите номер столбца для удаления(целое число):", "Запрос данных", 5) 'используем Val для преобразования текста vRetVal в число 'Val() преобразует число как текст в число. 'Если указан текст(например "третий") - он будет преобразован в 0 vRetVal = Val(vRetVal) If Val(vRetVal) = 0 Then MsgBox "Номер столбца должен быть целым числом больше нуля!", vbCritical, "DelCols" Exit Sub End If Columns(vRetVal).Delete End Sub
Важно знать: InputBox всегда возвращает только текст. Даже если указать — 5 — он вернет «5». В некоторых случаях это может привести к ошибке типов данных, поэтому я привел выше один из примеров преобразования типов данных к нужному.
Так же по прошествии какого-то времени появится вопрос, как отследить нажатие кнопки Отмена. Ведь ориентир на vRetVal = «» не всегда верен, иногда надо принять пустое значение(в случаях, скажем, замены значений) и отследить именно нажатие Отмена. Сделать это можно так:
vRetVal = InputBox("Укажите номер столбца для удаления(целое число):", "Запрос данных", "") If StrPtr(vRetVal) = 0 Then MsgBox "Нажата кнопка Отмена. Процедура прервана", vbCritical, "DelCols" Exit Sub End If
Больше всего вопросов здесь явно вызовет StrPtr. Эта специальная функция VBA, которая указывает, что переданы некие строковые данные. Если никаких данных не передавалось(а в случае с нажатием кнопки Отмена так и есть) указатель вернет 0. Если какие-то данные были переданы или нажата кнопка Ок(автоматом будет передана строка нулевой длины) — указатель StrPtr вернет значение отличное от нуля.
XPos — положение окна InputBox в твипах по горизонтали относительно левого края экрана. Следует учитывать, что именно относительно экрана, а не окна Excel.
YPos — положение окна InputBox в твипах по вертикали относительно верхнего края экрана.
HelpFile — указывается имя файла-справки в формате HLP. В отличие от MsgBox указание файла допускается при любых значениях. При этом к уже имеющимся в InputBox кнопкам добавляется еще одна — Help, которая и отвечает за вызов справки.
Context — целое число. Указывается индекс страницы файла-справки, которую необходимо открыть при нажатии кнопки Help. Указывается только если указан параметр HelpFile.
В дополнение приведу классический пример применения InputBox — выполнение процедуры только после введения пароля:
Sub ClearAllCells() Dim vRetVal vRetVal = InputBox("Введите пароль:", "Авторизация", "") If StrPtr(vRetVal) = 0 Then 'Нажата кнопка Отмена Exit Sub End If 'если пароль неверный - завершаем процедуру без выполнения действий If vRetVal <> "1234" Then MsgBox "Введенный пароль неверный", vbCritical, "ClearAllCells" Exit Sub End If 'будет выполнено только если введен правильный пароль - 1234 'полная очистка всех ячеек активного листа ActiveSheet.Cells.Clear End Sub
А вот еще один пример применения — запрос имени пользователя и запись его в лист LOG, чтобы можно было отследить кто и когда открывал файл. При этом если пользователь нажал Отмена, то книга закроется, а если не укажет имя пользователя — появится сообщение и заново запрос. И так до тех пор, пока имя пользователя не будет введено или не будет нажата кнопка Отмена:
Private Sub Workbook_Open() 'ThisWorkbook - Обращение к книге с кодом 'Но из модуля самой книги можно обращаться и проще - Me ThisWorkbook.Visible = False Dim user As String, lastrow As Long 'цикл, пока не будут указаны данные пользователя Do While user = "" user = InputBox("Введите имя пользователя:", "Авторизация", "") If StrPtr(user) = 0 Then MsgBox "Приложение будет закрыто", vbCritical, "Авторизация" ThisWorkbook.Close Exit Sub End If If user = "" Then MsgBox "Не указано имя пользователя!", vbCritical, "Авторизация" End If Loop With ThisWorkbook.Worksheets("LOG") 'получаем последнюю заполненную ячейку на листе "LOG" lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row 'записываем имя пользователя .Cells(lastrow + 1, 1) = user 'записываем время входа .Cells(lastrow + 1, 2) = Now End With End Sub
Что важно: этот код записывается в модуль ЭтаКнига(ThisWorkbook) и тогда при любом открытии книги будет появляться запрос на имя пользователя.
Так же некоторые примеры применения InputBox можно найти в статьях на сайте. Например:
Как удалить строки по условию?
Как массово изменить гиперссылки?
ДИАЛОГ ВВОДА ИНФОРМАЦИИ ПОЛЬЗОВАТЕЛЕМ — APPLICATION.INPUTBOX
В общем-то данный диалог мало отличается от обычного InputBox, за исключением типов возвращаемых данных. У данного диалога намного богаче функционал определения типов данных.
InputBox Promt, [Title], [DefaultValue], [Left], [Top], [HelpFile], [HelpContextID], [Type]
почти все параметры аналогичны таким же параметрам в InputBox.
Promt — текст, отображаемый на самой форме. Иначе говоря — сама суть показа диалога.
Title — текст, отображаемый в заголовке окна. В приведенном выше примере это «Запрос данных».
DefaultValue — значение, которое будет показано в поле ввода до указания значения пользователем.
Left — положение окна InputBox в поинтах по горизонтали относительно левого края экрана. В отличие от простого InputBox положение определяется на основании расположения самого окна Excel, а не экрана.
Top — положение окна InputBox в твипах по вертикали относительно верхнего края экрана.
HelpFile — указывается имя файла-справки в формате HLP. В отличие от MsgBox указание файла допускается при любых значениях. При этом к уже имеющимся в InputBox кнопкам добавляется еще одна — Help, которая и отвечает за вызов справки. Сам вызов справки осуществляется путем нажатия на иконку со знаком вопроса в заголовке диалога.
HelpContextID — целое число. Указывается индекс страницы файла-справки, которую необходимо открыть при нажатии кнопки Help. Указывается только если указан параметр HelpFile.
Type — целое число. Указывается одно из предустановленных значений, указывающих диалогу Application.InputBox тип данных, которые предполагается получить от пользователя. Ниже приведен листинг кода, демонстрирующий запрос данных всех типов с описанием ограничений и нюансов.
Dim vRetVal 'для получения выбранного значения 'запрос формулы - Type:=0 'возвращает либо произвольный текст, указанный в поле или ссылку на указанную ячейку в стиле R1C1 vRetVal = Application.InputBox("Укажите формулу:", "Запрос данных", "", Type:=0) 'запрос числа - Type:=1 'возвращает число. Не даст ввести текст, выдав сообщение об ошибке vRetVal = Application.InputBox("Укажите любое число:", "Запрос данных", "", Type:=1) 'запрос текст - Type:=2 'возвращает указанный текст. При указании числа оно будет в виде текста: 1="1" vRetVal = Application.InputBox("Укажите любой текст:", "Запрос данных", "", Type:=2) 'запрос логического значения True или False - Type:=4 'значение указывает в текущей локализации офиса 'для русской это ИСТИНА или ЛОЖЬ 'так же можно указать универсальные числовые константы - 1 или 0. 1 - ИСТИНА; 0 - ЛОЖЬ 'Не даст ввести иные значения, выдав сообщение об ошибке 'возвращает указанное логическое значение в английской локализации vRetVal = Application.InputBox("Укажите ИСТИНА или ЛОЖЬ:", "Запрос данных", "", Type:=4) 'запрос диапазона - Type:=8 'возвращает ссылку на диапазон 'При получении такого значения обязательно следует использовать оператор Set 'В противном случае вернет значение массива(Array), содержащего значения указанных ячеек 'при указании через Set и нажатии Отмена будет ошибка VBA Set vRetVal = Application.InputBox("Укажите диапазон для очистки ячеек:", "Запрос данных", "", Type:=8) 'запрос значения ошибки #Н/Д - Type:=16 'всегда возвращает значение ошибки #Н/Д независимо от введенного значения vRetVal = Application.InputBox("Укажите диапазон для очистки ячеек:", "Запрос данных", "", Type:=16) 'запрос диапазона ячеек для создания массива - Type:=64 'возвращает массив ячеек с границами начала от 1(Option Base 1) 'если указать всего одну ячейку vRetVal будет содержать значение этой ячейки, а не массив vRetVal = Application.InputBox("Укажите диапазон для создания массива:", "Запрос данных", "", Type:=64)
Конечно, чаще всего используют Type:=8, т.к. это избавляет от необходимости рисования своих форм и прочих заморочек для запроса указания диапазона от пользователя. Еще раз обращаю внимание, что для Type:=8 необходим ключевой оператор присвоения Set, т.к. в результате необходимо получить именно диапазон(т.е. объект). Ниже приведена процедура, которая запрашивает диапазон для очистки и корректно обрабатывает ситуацию при нажатии кнопки Отмена(т.е. не показывает никаких ошибок пользователю, а просто не выполняется). Стандартно при нажатии Отмена процедура завершается с ошибкой VBA вида Type Mismatch, что не очень грамотно с точки зрения взаимодействия с пользователем — он не должен видеть внутренние ошибки:
'--------------------------------------------------------------------------------------- ' Procedure : ClearCells ' DateTime : 19.10.2014 22:53 ' Author : The_Prist(Щербаков Дмитрий) ' WebMoney - R298726502453; Яндекс.Деньги - 41001332272872 ' http://www.excel-vba.ru ' Purpose : ' Запрашиваем диапазон ячеек для очистки. ' По умолчанию заносится диапазон выделенных на момент запуска ячеек '--------------------------------------------------------------------------------------- Sub ClearCells() Dim vRetVal 'для получения выбранного значения On Error Resume Next Set vRetVal = Application.InputBox("Укажите диапазон для очистки ячеек:", "Запрос данных", Selection.Address, Type:=8) If vRetVal Is Nothing Then 'нажата кнопка Отмена - диапазон не выбран MsgBox "Отмена выполнения", vbCritical, "Нет данных" Exit Sub 'завершаем процедуру, т.к. ячейки не выбраны End If 'диапазон выбран - очищаем ячейки vRetVal.Clear End Sub
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика