Как использовать макрос в excel

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

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

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

Сведения о создании макросов см. в статье Краткое руководство: создание макроса.

Если вам нужно узнать, как использовать макрос на компьютере с Windows S, см. Office в Windows 10 S.

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

Включение макросов при появлении панели сообщений

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

В области Панель сообщений нажмите кнопку Включить содержимое.
Файл откроется и будет надежным документом.

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

Как использовать макрос в excel. b1d11c4a 5ed8 44ad 8693 e6da087b8cb4. Как использовать макрос в excel фото. Как использовать макрос в excel-b1d11c4a 5ed8 44ad 8693 e6da087b8cb4. картинка Как использовать макрос в excel. картинка b1d11c4a 5ed8 44ad 8693 e6da087b8cb4

Включить макрос только для текущего сеанса

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

Откройте вкладку Файл.

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

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

Изменение параметров макросов в центре управления безопасностью

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

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

Откройте вкладку Файл.

Затем выберите пункты Центр управления безопасностью и Параметры центра управления безопасностью.

В центре управления безопасностью щелкните элемент Параметры макросов.

Как использовать макрос в excel. b292941f fc16 4817 9f29 7435509028db. Как использовать макрос в excel фото. Как использовать макрос в excel-b292941f fc16 4817 9f29 7435509028db. картинка Как использовать макрос в excel. картинка b292941f fc16 4817 9f29 7435509028db

Сделайте нужные выборки и нажмите кнопку ОК.

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

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

В Excel этот параметр отключение макроса VBA без уведомления и применяется только к макросам VBA.

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

В Excel этот параметр отключение макроса VBA с уведомлением и применяется только к макросам VBA.

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

В Excel этот параметр отключение макроса VBA за исключением макроов с цифровой подписью и применяется только к макросам VBA.

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

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

Excel также естьExcel включить макрос Excel 4.0при включенном макросах VBA. Если установить этот параметр, все вышеперечисленные параметры макроса VBA также будут применяться Excel 4.0 (XLM).

Если этот снимок не был выбран, макрос XLM отключается без уведомления.

Доверять доступ к объектной модели проектов VBA Отопустить или разрешить программный доступ к объектной модели Visual Basic для приложений (VBA) из клиента автоматизации. Этот параметр безопасности для кода, который позволяет автоматизировать Office и управлять средой и объектной моделью VBA. Этот параметр настраивается как для каждого пользователя, так и для каждого приложения и по умолчанию не позволяет неавторизованным программам создать вредоносный код самостоятельной репликации. Чтобы клиенты автоматизации получили доступ к объектной модели VBA, пользователь, работающий с кодом, должен предоставить доступ. Чтобы включить доступ, выберите этот квадрат.

Примечание: В Microsoft Publisher и Microsoft Access параметр Доверять доступ к объектной модели проектов VBA отсутствует.

Источник

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

Введение

В принципе, существует великое множество языков программирования (Pascal, Fortran, C++, C#, Java, ASP, PHP. ), но для всех программ пакета Microsoft Office стандартом является именно встроенный язык VBA. Команды этого языка понимает любое офисное приложение, будь то Excel, Word, Outlook или Access.

Способ 1. Создание макросов в редакторе Visual Basic

К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:

Как использовать макрос в excel. e4a8a22278938cca3329250494a86821. Как использовать макрос в excel фото. Как использовать макрос в excel-e4a8a22278938cca3329250494a86821. картинка Как использовать макрос в excel. картинка e4a8a22278938cca3329250494a86821

Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:

Как использовать макрос в excel. eabed1f50bea35971f3ac7b0f55806a5. Как использовать макрос в excel фото. Как использовать макрос в excel-eabed1f50bea35971f3ac7b0f55806a5. картинка Как использовать макрос в excel. картинка eabed1f50bea35971f3ac7b0f55806a5

Как использовать макрос в excel. e56523c736ac766826b69973f8d14a89. Как использовать макрос в excel фото. Как использовать макрос в excel-e56523c736ac766826b69973f8d14a89. картинка Как использовать макрос в excel. картинка e56523c736ac766826b69973f8d14a89

Как использовать макрос в excel. 8356c2a6192954a6adf5b801f6490db7. Как использовать макрос в excel фото. Как использовать макрос в excel-8356c2a6192954a6adf5b801f6490db7. картинка Как использовать макрос в excel. картинка 8356c2a6192954a6adf5b801f6490db7

Обычный макрос, введенный в стандартный модуль выглядит примерно так:

Как использовать макрос в excel. 2b62279d218e2d599c837a51d3867675. Как использовать макрос в excel фото. Как использовать макрос в excel-2b62279d218e2d599c837a51d3867675. картинка Как использовать макрос в excel. картинка 2b62279d218e2d599c837a51d3867675

Давайте разберем приведенный выше в качестве примера макрос Zamena:

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

Способ 2. Запись макросов макрорекордером

Чтобы включить запись необходимо:

Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:

Как использовать макрос в excel. cdef74612dc67ef330799d1d5bbf1df7. Как использовать макрос в excel фото. Как использовать макрос в excel-cdef74612dc67ef330799d1d5bbf1df7. картинка Как использовать макрос в excel. картинка cdef74612dc67ef330799d1d5bbf1df7

После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording) .

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

Как использовать макрос в excel. 22da88bbf0586d7dbed7be2470fd3935. Как использовать макрос в excel фото. Как использовать макрос в excel-22da88bbf0586d7dbed7be2470fd3935. картинка Как использовать макрос в excel. картинка 22da88bbf0586d7dbed7be2470fd3935

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

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

Кнопка на панели инструментов в Excel 2003 и старше

Как использовать макрос в excel. 01b28fadbde49ed55feb452498fbb60f. Как использовать макрос в excel фото. Как использовать макрос в excel-01b28fadbde49ed55feb452498fbb60f. картинка Как использовать макрос в excel. картинка 01b28fadbde49ed55feb452498fbb60f

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

Как использовать макрос в excel. e61998c4f9112f790533c09f2bdf81fd. Как использовать макрос в excel фото. Как использовать макрос в excel-e61998c4f9112f790533c09f2bdf81fd. картинка Как использовать макрос в excel. картинка e61998c4f9112f790533c09f2bdf81fd

Кнопка на панели быстрого доступа в Excel 2007 и новее

Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar) :

Как использовать макрос в excel. 9a9ec476d039e4272284b6f33dca2a0a. Как использовать макрос в excel фото. Как использовать макрос в excel-9a9ec476d039e4272284b6f33dca2a0a. картинка Как использовать макрос в excel. картинка 9a9ec476d039e4272284b6f33dca2a0a

Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:

Как использовать макрос в excel. 721cbbd6da2ce32e375cfa445921852c. Как использовать макрос в excel фото. Как использовать макрос в excel-721cbbd6da2ce32e375cfa445921852c. картинка Как использовать макрос в excel. картинка 721cbbd6da2ce32e375cfa445921852c

Кнопка на листе

Этот способ подходит для любой версии Excel. Мы добавим кнопку запуска макроса прямо на рабочий лист, как графический объект. Для этого:

Выберите объект Кнопка (Button) :

Как использовать макрос в excel. 23414697cca14a6f1dfccc15ee44dbd3. Как использовать макрос в excel фото. Как использовать макрос в excel-23414697cca14a6f1dfccc15ee44dbd3. картинка Как использовать макрос в excel. картинка 23414697cca14a6f1dfccc15ee44dbd3

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

Создание пользовательских функций на VBA

Как использовать макрос в excel. 76c74f5db5cdcb8ab05ddc5a8af01cf8. Как использовать макрос в excel фото. Как использовать макрос в excel-76c74f5db5cdcb8ab05ddc5a8af01cf8. картинка Как использовать макрос в excel. картинка 76c74f5db5cdcb8ab05ddc5a8af01cf8

Как использовать макрос в excel. 092f01c2e2e96b7dfea647e79a0f822f. Как использовать макрос в excel фото. Как использовать макрос в excel-092f01c2e2e96b7dfea647e79a0f822f. картинка Как использовать макрос в excel. картинка 092f01c2e2e96b7dfea647e79a0f822f

После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:

Источник

Как создавать, изменять и выполнять макросы в Excel

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

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

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

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

Метод 1: Записываем макрос в автоматическом режиме

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

Узнать, как это можно сделать, можно в нашей статье – “Как включать и отключать макросы в Excel”.

После того, как макросы включены, можно перейти к нашей основной задаче.

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

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

Корректируем макрос

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

Метод 2: создание макроса вручную

Заключение

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

Источник

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

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

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

Как использовать макрос в excel. img 5c30834c32470. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30834c32470. картинка Как использовать макрос в excel. картинка img 5c30834c32470

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

Как использовать макрос в excel. img 5c33204737c50. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c33204737c50. картинка Как использовать макрос в excel. картинка img 5c33204737c50

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

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

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

Как использовать макрос в excel. img 5c272f858920b. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c272f858920b. картинка Как использовать макрос в excel. картинка img 5c272f858920b

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

Как использовать макрос в excel. img 5c27300154ccc. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c27300154ccc. картинка Как использовать макрос в excel. картинка img 5c27300154ccc

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

Как использовать макрос в excel. img 5c2730b4ebf8c. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c2730b4ebf8c. картинка Как использовать макрос в excel. картинка img 5c2730b4ebf8c

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

Как использовать макрос в excel. img 5c2732271c7d8. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c2732271c7d8. картинка Как использовать макрос в excel. картинка img 5c2732271c7d8

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

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

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

Как использовать макрос в excel. img 5c2735a728dd8. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c2735a728dd8. картинка Как использовать макрос в excel. картинка img 5c2735a728dd8

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

Как использовать макрос в excel. img 5c274528ac5ad. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c274528ac5ad. картинка Как использовать макрос в excel. картинка img 5c274528ac5ad

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

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

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

Как использовать макрос в excel. img 5c274ab0adfcb. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c274ab0adfcb. картинка Как использовать макрос в excel. картинка img 5c274ab0adfcb

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

Как использовать макрос в excel. img 5c30f561b2751. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30f561b2751. картинка Как использовать макрос в excel. картинка img 5c30f561b2751

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

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

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

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

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

Как использовать макрос в excel. img 5c3083138cdd8. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c3083138cdd8. картинка Как использовать макрос в excel. картинка img 5c3083138cdd8

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

Как использовать макрос в excel. img 5c308455a4dbf. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c308455a4dbf. картинка Как использовать макрос в excel. картинка img 5c308455a4dbf

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

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

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

Как использовать макрос в excel. img 5c30af475ca91. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30af475ca91. картинка Как использовать макрос в excel. картинка img 5c30af475ca91

Как использовать макрос в excel. img 5c30b193d7375. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30b193d7375. картинка Как использовать макрос в excel. картинка img 5c30b193d7375

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

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

Как использовать макрос в excel. img 5c30b3382b381. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30b3382b381. картинка Как использовать макрос в excel. картинка img 5c30b3382b381

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

Как использовать макрос в excel. img 5c30b5d01d97a. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30b5d01d97a. картинка Как использовать макрос в excel. картинка img 5c30b5d01d97a

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

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

Как использовать макрос в excel. img 5c30b52cbcc7b. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30b52cbcc7b. картинка Как использовать макрос в excel. картинка img 5c30b52cbcc7b

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

Как использовать макрос в excel. img 5c30b685b0632. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30b685b0632. картинка Как использовать макрос в excel. картинка img 5c30b685b0632

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

Как использовать макрос в excel. img 5c30b6fb87b5f. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30b6fb87b5f. картинка Как использовать макрос в excel. картинка img 5c30b6fb87b5f

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

Как использовать макрос в excel. img 5c30b811c87b4. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30b811c87b4. картинка Как использовать макрос в excel. картинка img 5c30b811c87b4

Как использовать макрос в excel. img 5c30b99377ec0. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30b99377ec0. картинка Как использовать макрос в excel. картинка img 5c30b99377ec0

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

Как использовать макрос в excel. img 5c30ba2c56394. Как использовать макрос в excel фото. Как использовать макрос в excel-img 5c30ba2c56394. картинка Как использовать макрос в excel. картинка img 5c30ba2c56394

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

Источник

Автоматизация рутины в Microsoft Excel при помощи VBA

В этом посте я расскажу, что такое VBA и как с ним работать в Microsoft Excel 2007/2010 (для более старых версий изменяется лишь интерфейс — код, скорее всего, будет таким же) для автоматизации различной рутины.

Как использовать макрос в excel. a762f9d01ef454c166b85e0794cbd8e4. Как использовать макрос в excel фото. Как использовать макрос в excel-a762f9d01ef454c166b85e0794cbd8e4. картинка Как использовать макрос в excel. картинка a762f9d01ef454c166b85e0794cbd8e4

VBA (Visual Basic for Applications) — это упрощенная версия Visual Basic, встроенная в множество продуктов линейки Microsoft Office. Она позволяет писать программы прямо в файле конкретного документа. Вам не требуется устанавливать различные IDE — всё, включая отладчик, уже есть в Excel.

Еще при помощи Visual Studio Tools for Office можно писать макросы на C# и также встраивать их. Спасибо, FireStorm.

Сразу скажу — писать на других языках (C++/Delphi/PHP) также возможно, но требуется научится читать, изменять и писать файлы офиса — встраивать в документы не получится. А интерфейсы Microsoft работают через COM. Чтобы вы поняли весь ужас, вот Hello World с использованием COM.

Поэтому, увы, будем учить Visual Basic.

Чуть-чуть подготовки и постановка задачи

Итак, поехали. Открываем Excel.

Для начала давайте добавим в Ribbon панель «Разработчик». В ней находятся кнопки, текстовые поля и пр. элементы для конструирования форм.

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loaderКак использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

Теперь давайте подумаем, на каком примере мы будем изучать VBA. Недавно мне потребовалось красиво оформить прайс-лист, выглядевший, как таблица. Идём в гугл, набираем «прайс-лист» и качаем любой, который оформлен примерно так (не сочтите за рекламу, пожалуйста):

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

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

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

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

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

Кодим

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

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loaderКак использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

И вот мы в среде разработки VB. Также её можно вызвать из контекстного меню командой «Исходный текст»/«View code».

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loaderКак использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

Перед вами окно с заглушкой процедуры. Можете его развернуть. Код должен выглядеть примерно так:

Напишем Hello World:

Sub FormatPrice()
MsgBox «Hello World!»
End Sub

И запустим либо щелкнув по кнопке (предварительно сняв с неё выделение), либо клавишей F5 прямо из редактора.

Тут, пожалуй, следует отвлечься на небольшой ликбез по поводу синтаксиса VB. Кто его знает — может смело пропустить этот раздел до конца. Основное отличие Visual Basic от Pascal/C/Java в том, что команды разделяются не ;, а переносом строки или двоеточием (:), если очень хочется написать несколько команд в одну строку. Чтобы понять основные правила синтаксиса, приведу абстрактный код.

Примеры синтаксиса

Dim res As sTRING ‘ Регистр в VB не важен. Впрочем, редактор Вас поправит
Dim i As Integer
‘ Цикл всегда состоит из нескольких строк
For i = 1 To 10
res = res + CStr(i) ‘ Конвертация чего угодно в String
If i = 5 Then Exit For
Next i

Dim x As Double
x = Val( «1.234» ) ‘ Парсинг чисел
x = x + 10
MsgBox x

On Error GoTo Err ‘ При ошибке перейти к метке Err
x = 5 / 0
MsgBox «OK!»
GoTo ne

ne:
On Error GoTo 0 ‘ Отключаем обработку ошибок

‘ Циклы бывает, какие захотите
Do While True
Exit Do

Loop ‘While True
Do ‘Until False
Exit Do
Loop Until False
‘ А вот при вызове функций, от которых хотим получить значение, скобки нужны.
‘ Val также умеет возвращать Integer
Select Case LengthSqr(Len( «abc» ), Val( «4» ))
Case 24
MsgBox «0»
Case 25
MsgBox «1»
Case 26
MsgBox «2»
End Select

Грабли-1. При копировании кода из IDE (в английском Excel) есь текст конвертируется в 1252 Latin-1. Поэтому, если хотите сохранить русские комментарии — надо сохранить крокозябры как Latin-1, а потом открыть в 1251.

Грабли-2. Т.к. VB позволяет использовать необъявленные переменные, я всегда в начале кода (перед всеми процедурами) ставлю строчку Option Explicit. Эта директива запрещает интерпретатору заводить переменные самостоятельно.

Грабли-3. Глобальные переменные можно объявлять только до первой функции/процедуры. Локальные — в любом месте процедуры/функции.

Еще немного дополнительных функций, которые могут пригодится: InPos, Mid, Trim, LBound, UBound. Также ответы на все вопросы по поводу работы функций/их параметров можно получить в MSDN.

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

Кодим много и под Excel

В этой части мы уже начнём кодить нечто, что умеет работать с нашими листами в Excel. Для начала создадим отдельный лист с именем result (лист с данными назовём data). Теперь, наверное, нужно этот лист очистить от того, что на нём есть. Также мы «выделим» лист с данными, чтобы каждый раз не писать длинное обращение к массиву с листами.

Sub FormatPrice()
Sheets( «result» ).Cells.Clear
Sheets( «data» ).Activate
End Sub

Работа с диапазонами ячеек

Вся работа в Excel VBA производится с диапазонами ячеек. Они создаются функцией Range и возвращают объект типа Range. У него есть всё необходимое для работы с данными и/или оформлением. Кстати сказать, свойство Cells листа — это тоже Range.

Примеры работы с Range

Sheets( «result» ).Activate
Dim r As Range
Set r = Range( «A1» )
r.Value = «123»
Set r = Range( «A3,A5» )
r.Font.Color = vbRed
r.Value = «456»
Set r = Range( «A6:A7» )
r.Value = «=A1+A3»

Теперь давайте поймем алгоритм работы нашего кода. Итак, у каждой строчки листа data, начиная со второй, есть некоторые данные, которые нас не интересуют (ID, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:

Для упрощения работы рекомендую определить следующие функции-сокращения:

Function GetCol(Col As Integer ) As String
GetCol = Chr(Asc( «A» ) + Col)
End Function

Далее определим глобальную переменную «текущая строчка»: Dim CurRow As Integer. В начале процедуры её следует сделать равной единице. Еще нам потребуется переменная-«текущая строка в data», массив с именами групп текущей предыдущей строк. Потом можно написать цикл «пока первая ячейка в строке непуста».

Глобальные переменные

Option Explicit ‘ про эту строчку я уже рассказывал
Dim CurRow As Integer
Const GroupsCount As Integer = 2
Const DataCount As Integer = 3

FormatPrice

Sub FormatPrice()
Dim I As Integer ‘ строка в data
CurRow = 1
Dim Groups(1 To GroupsCount) As String
Dim PrGroups(1 To GroupsCount) As String

Теперь надо заполнить массив Groups:

На месте многоточия

И создать заголовки:

На месте многоточия в предыдущем куске

For I2 = 1 To GroupsCount
If Groups(I2) <> PrGroups(I2) Then
Dim I3 As Integer
For I3 = I2 To GroupsCount
AddHeader I3, Groups(I3)
Next I3
Exit For
End If
Next I2

Не забудем про процедуру AddHeader:

Перед FormatPrice

Теперь надо перенести всякую информацию в result

Подогнать столбцы по ширине и выбрать лист result для показа результата

После цикла в конце FormatPrice

Sheets( «Result» ).Activate
Columns.AutoFit

Всё. Можно любоваться первой версией.

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

Некрасиво, но похоже. Давайте разбираться с форматированием. Сначала изменим процедуру AddHeader:

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

Осталось только сделать границы. Тут уже нам требуется работать со всеми объединёнными ячейками, иначе бордюр будет только у одной:

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

Поэтому чуть-чуть меняем код с добавлением стиля границ:

Select Case Ty
Case 1 ‘ Тип
.Font.Bold = True
.Font.Size = 16
.Borders(xlTop).Weight = xlThick
Case 2 ‘ Производитель
.Font.Size = 12
.Borders(xlTop).Weight = xlMedium
End Select
.Borders(xlBottom).Weight = xlMedium ‘ По убыванию: xlThick, xlMedium, xlThin, xlHairline
End With
CurRow = CurRow + 1
End Sub

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

Осталось лишь добится пропусков перед началом новой группы. Это легко:

В начале FormatPrice

Dim I As Integer ‘ строка в data
CurRow = 0 ‘ чтобы не было пропуска в самом начале
Dim Groups(1 To GroupsCount) As String

В цикле расстановки заголовков

If Groups(I2) <> PrGroups(I2) Then
CurRow = CurRow + 1
Dim I3 As Integer

Как использовать макрос в excel. image loader. Как использовать макрос в excel фото. Как использовать макрос в excel-image loader. картинка Как использовать макрос в excel. картинка image loader

В точности то, что и хотели.

Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.

Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.

Спасибо за внимание.

Буду рад конструктивной критике в комментариях.

UPD: Перезалил пример на Dropbox и min.us.

UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *