Мой секрет

Vbs примеры. VBA Excel: примеры программ. Макросы в Excel

Цель работы – Исследование главных операторов и реализации главных конструкций программирования в языке VBA.

4.1 Главные этапы работы с программками на vba в Excel

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

в Excel избрать из меню команду Сервис – Макрос – Редактор Visual Basic ;

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

Сначала модуля может указываться {инструкция} Option Explicit . Если она указана, то все переменные, применяемые в программке, нужно будет объявлять в операторе Dim (подробнее о этом см. в подразделе 4.3).

В неких вариантах, в зависимости от опции среды VBA, {инструкция} Option Explicit указывается в начале модуля автоматом. Если программер хочет употреблять переменные, не объявляя их в операторе Dim , то аннотацию Option Explicit нужно удалить.

Для пуска программки на выполнение нужно избрать из меню команду Run – Run Sub/UserForm .

4.2 Простой пример программки на языке vba

Пример 4.1 – Программка, возводящаяуказанное число a в обозначенную степень b .

Dim a As Single, b As Single

a = InputBox(“Введите основание: ”)

b = InputBox(“Введите показатель степени: ”)

x = a^b ‘Возведение в степень

MsgBox(“Итог равен ” & x)

Тут слово Sub обозначает начало процедуры; ее имя в данном случае – primer 4_1 . Программка на языке VBA постоянно состоит из одной либо нескольких процедур (в данном случае – из одной).

Знак ‘ (одиночная кавычка) обозначает начало комментария. Текст комментария быть может хоть каким.

Dim – оператор объявления переменных. В этом случае обозначено, что переменные a и b имеют тип Single . т.е. могут представлять собой как целые, так и дробные числа. Подробнее типы данных и объявление переменных будут рассмотрены в подразделе 4.3.

InputBox – функция для ввода значения переменной. Строчка a = InputBox (“Введите основание: ”) значит, что вводится значение переменной a ; при всем этом на экран выводится сообщение “Введите основание:” . Строчка x = a ^ b – оператор присваивания: рассчитывается значение правой части (в данном случае переменная a возводится в степень b ), и итог присваивается переменной, обозначенной в левой части (в данном случае – переменной x ). Строчка MsgBox (“Итог равен ” & x ) значит, что на экран выводится сообщение “Итог равен ” и значение переменной x .

Примечание – Символ & в функции MsgBox предназначен для сцепления нескольких частей данных, которые требуется вывести на экран, в данном примере – строчки “Итог равен” и переменной x . Аналогично символ & может употребляться в функции InputBox (примеры такового использования будут приведены дальше). Перед знаком & и опосля него непременно должны быть указаны пробелы.

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

‘1-ый пример программки на VBA

Dim a As Single, b As Single

a = InputBox(“Введите основание: ”) : b = InputBox(“Введите показатель степени: ”)

x = a^b: MsgBox(“Итог равен ” & x) ‘Возведение в степень и вывод результата

В рассмотренном примере применена процедура, именуемая подпрограммой. Таковая процедура начинается со слова Sub . В программке на VBA постоянно имеется хотя бы одна процедура-подпрограмма. Не считая того, в языке VBA имеется очередной вид процедур – функции. Процедура-функция начинается со слова Function . Внедрение таковых процедур будет рассмотрено в подразделе 4.9.

(Visual Basic for Application)

Basic- язык программирования высочайшего уровня (интерпретатор)

Visual- содержит приятные средства по разработке программ (кодов), упрощающие работу юзера, дозволяет записывать коды при помощи макрорекодера.

Application- приложение к программной системеMSOfficeнаряду с приложениямиWord,Access,PowerPoint.

Для чего нужен VBA?

Соединяет воединыжды (интегрирует) приложения, дозволяет управлять работой остальных приложений не выходя из Excel, внедрять объекты из остальных приложений;

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

VBAотносится к числу объектно-ориентированных языков, другими словами при разработке проектов употребляются объекты.Определение: объединение данных и кода в единое целоею К примеру, элемент «Клавиша» и соответственный код, связанный с данной нам клавишей обеспечат переход на иной лист рабочей книжки.

Главные объекты VBA:

Application (само приложение Excel)

WorkBook(рабочая книжка – ваш файл)

WorkSheetFunction (мастер функций)

WorkSheet (рабочий лист)

Interior (цвет фона)

Огромное количество неких объектов составляют семейства –WorkBooks,WorkSheets,Charts.

Объекты владеют качествами (деяния над объектами) и способами (дейстия самих объектов).

Начнем знакомиться со средствами визуализации разработки проектов в VBA. Таким является Встроенная Среда Разработки Приложений. Чтоб попасть в эту среду нужно избрать в пт меню СервисМакросРедакторVBAили надавить сразу клавишиALTиF11.

Интересно почитать:  Включить макросы в excel

На дисплее покажутся составляющие редактора VBA:

Окно проекта Project – VBA Project

Окно форм UserForm

Окно проекта Project–VBAProject(рис. 1) указывает структуру вашего проекта (файла). Это окно активируется в редактореVBAвыбором командыViewProjectExplorerили клавишей «ProjectExplorer» либо нажатием клавишCtrl+R

Рис. 1 Окно проекта.

Рис.2 Встроенная среда разработки приложений

Окно кода предназначено для хранения кода, связанного с объектом. У всякого объекта свое окно, так любой рабочий лист (WorkSheet) имеет свое окно кода, рабочая книжка (WorkBook) – свое окно.

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

Пользовательские функции добавляются к обычному списку мастера функций (WorkSheetFunction). Эти функции создаются в особом модуле, сопровождающем объектWorkSheetFunction. Этот модуль добавляется к проекту при помощи командыInsertModule(ВставитьМодуль), в окне проекта он отобразится на уровне вашего приложения. Все коды, написанные в этом модуле, покажутся в группы «Функции определенные юзером» мастера функций.

Итак, добавляем модуль в наш проект (InsertModule) и в окне кода этого модуля пишем текст программки:

y = Cos((x + 2) / 2) ^ 2 + Exp(-2 * x) / (x ^ 2 + 1) ^ 0.5

Потом перебегаем на рабочий лист «1 график», в ячейке с2 выполним воззвание к новейшей функции, добавленной в мастер функций — y(x). Работа с данной нам функцией ничем не различается от работы с хоть какой иной функцией. На первом шаге нужно выбратьy(x) в группы «Функции определенные юзером», на втором шаге в качестве аргументаxуказать ячейкуA2. В итоге в ячейке С2 будет записана формула =y(A2). Эту формулу протащить на весь спектр А2:А17 как показано на рис. 3. Очевидно, итог должен совпасть с тем, что вы получили, вычисляя эту функцию обыкновенными средствами рабочего листа.

Рис 3. Функция y(x), рассчитанная обыденным образом и при помощи пользовательской функции.

Главные операторы vba – Условные операторы

Условные операторы имеют 2 формы записи:

1) В одну строчку

IF,THEN,ELSE–служебные неизменяемые слова, в угловых скобках текст юзера, это то, что вы пишете в согласовании с заданием, в квадратных скобках необязательная часть, текст может отсутствовать. Таковая форма обычно употребляется в случае обычных действий, к примеру, при вычислении модуля числаy=х=абс(s) можно употреблять последующий оператор:

IF x > 0 THEN y = x ELSE y = -x

2) В несколько строк. В этом случае условный оператор непременно завершается утверждением “ENDIF”

Таковая форма употребляется при сложных вычислениях, к примеру, при вычислении корней квадратного уравнения. Пусть нужно отыскать корешки уравнения a*x 2 +b*x+c= 0. Как понятно в случае еслиb 2 -4*a*c≥ 0, то корешки рассчитываются по формуле
, еслиb 2 -4*a*c≤ 0, то корней в области реальных чисел нет. Условный оператор, реализующий этот метод, смотрится последующим образом:

IF b^2 -4*a*c>= 0 THEN

X1 = (-b + (b^2 — 4*a*c)^(1/2)) / (2*a)

X2 = (-b + (b^2 + 4*a*c)^(1/2)) / (2*a)

X1 = “ РЕШЕНИЯ НЕТ”

X2 = “ РЕШЕНИЯ НЕТ”

Примеры написания пользовательских функций в vba

F
unction y(x)

Автоматизируем любые деяния в браузере с iMacros

iMacros — это программка, которая дозволяет заавтоматизировать и имитировать деяния юзера в браузере. По словам разрабов, iMacros загрузили 9 миллионов раз, но только 240 тыщ юзеров интенсивно употребляют приложение. Другими словами только 3% из установивших продукт отыскали ему применение. И неслучайно. При первом взоре на документацию трудно рассмотреть его изумительные, поражающие воображение способности. Эта статья откроет их для тебя.

Рис. 1. Начало работы iMacros

Рис. 1. Начало работы iMacros

Остальные статьи в выпуске:

Взломщик #185. Обоснуй баг!

Установка

Есть два варианта установки iMacros:

  • в качестве расширения (add-ons) для браузера (Firefox, Chrome либо Internet Explorer),
  • как отдельное приложение (лишь для Windows).

В обрисованных ниже примерах применен iMacros Firefox add-on.

Hello world

Главный прием, которому стоит научиться, — запись действий в браузере и следующее их проигрывание. Перейдем на вкладку Record на панели в левом нижнем углу экрана и нажмем на клавишу Record Macro. Сейчас вобьем в Гугл «Hello world» и нажмем Enter. Позже клавишу Stop (под клавишей Record Macro). iMacros сгенерировал код, который можно неоднократно запускать и редактировать:

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

WARNING

В браузере Chrome не работает третья часть iMacros-команд (какие — см. документацию). Потому лучше употреблять Firefox (90% способностей) либо Internet Explorer (более полный функционал).

Работа с данными

Наполнение форм из CSV-файла с данными

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

Интересно почитать:  Как вставить макрос в 2010 excel

Рис. 2. Запись макроса

Рис. 2. Запись макроса

Извлечение данных из веб-страниц

А сейчас представим оборотную ситуацию. Когда необходимо просмотреть каталог магазина-конкурента и сохранить информацию о товарах.

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

Рис. 3. Панель запуска макроса Рис. 3. Панель пуска макроса

Вызов iMacros из кода

Хоть какой макрос можно сохранить в файле с расширением iim и употреблять в приложениях, написанных на 16 языках программирования. Лишь нужно не запамятовать установить полную версию (не аддон) iMacros на комп либо веб-сервер.

Поддерживаемые языки

  • ASP
  • ASP.NET
  • C#
  • C++
  • Delphi
  • FoxPro
  • Java
  • JavaScript
  • Perl
  • PHP
  • Python
  • Power Shell
  • Ruby
  • TCL
  • VBA
  • VBS
  • Юзеры iMacros для Firefox могут делиться меж собой исходниками при помощи закладок Delicious. Подробности тут: wiki.imacros.net/iMacros_for_Firefox#Bookmarking
  • Полный мануал по iMacros: wiki.imacros.net
  • Веб-сайт производителя: imacros.net

Batch-файлы

Вызов iMacros из батников — более обычной и удачный путь заавтоматизировать их выполнение. Довольно одной строчки для пуска макроса:

Основная сложность в использовании iMacros под C++ — настройка среды разработки (конкретику по версиям разных сред отыскивай в документации либо спрашивай у саппорта). Механизм работы кода таковой же, как в PHP:

Внедрение JavaScript в макросах

В iMacros можно присваивать переменным результаты выполнения JavaScript-кода c помощью команды EVAL:

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

При помощи координатной адресации можно даже имитировать drag and drop. Перед записью макроса для Flash-сайта нужно включить Use Direct Screen Commands в настройках.

Снимки экрана

При помощи команды SCREENSHOT TYPE=(PAGE|BROWSER) FOLDER=folder_name FILE=file_name можно создать снимок экрана всей странички, а используя TAG + воззвание к элементу + CONTENT=EVENT:SAVE_ELEMENT_SCREENSHOT — отдельной ее части.

Тестирование веб-сайтов

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

Результаты измерений сохраняются в ImacrosDownloadsperformance_Stopwatch.csv.

Обработка ошибок

По дефлоту в случае появления какой-нибудь ошибки выполнение макроса останавливается. Этого реально избежать, прописав в начале !ERRORIGNORE YES.

Внедрение прокси-серверов

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

Кандидатуры

Запись видео

Если ты хочешь запечатлеть наилучшие моменты работы iMacros на видео — применяй плагин Capture Fox для Mozilla либо Screencastify для Chrome.

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

  • наполнение полей форм из CSV-файлов;
  • извлечение данных из таблицы в CSV-файл;
  • установка значений в селектах и переключателях (radio buttons);
  • сохранение картинок с веб-сайта;
  • обработка всплывающих JS-диалогов;
  • печать странички;
  • создание снимков экрана;
  • измерение времени на загрузку отдельных частей странички и выполнение сценариев;
  • извлечение данных из форм и иных частей сайта.

Как сделать и запустить макрос в Word

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

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

Разве макросы не небезопасны?

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

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

В этом примере вы собираетесь сделать макрос в Word, чтоб вставить свою подпись в конец документа.

  1. В открытом Word перейдите на вкладку «Просмотр».
  2. Щелкните стрелку вниз под клавишей «Макросы».
  3. Изберите «Записать макрос»… раскроется новое окно.

  1. В поле Имя макроса: введите важное имя для макроса. Пробелы не допускаются. Используйте подчеркивание либо тире.
  2. В раскрывающемся перечне Сохранить макрос в: вы сможете избрать, какие документы вы желаете употреблять для этого макроса. Если вы выберете Все документы (Normal.dotm), макрос будет доступен для вас в любом новеньком документе Word, который вы создаете отныне. Если вы выберете один документ, он будет применяться лишь к этому единственному документу. Обычно лучше избрать Все документы.

  1. В поле Описание: напишите, что делает макрос. Это обычной макрос с описательным именованием, но по мере освоения макросов вы будете созодать наиболее сложные вещи, потому описание постоянно будет неплохой мыслью.
  2. Вы сможете избрать «Назначить макрос» или кнопочке, которую вы создадите при помощи клавиши, или жарким кнопкам, которые вы сможете избрать при помощи клавиши «Клавиатура». Для Word уже есть много сочетаний кнопок, потому идеальнее всего подойдет клавиша. Клавиша выбора. Раскроется новое окно под заглавием «Характеристики Word».

  1. Тут вы назначите макросу клавишу на ленте Word. Изберите Настроить ленту.
  2. В раскрывающемся перечне Избрать команды из: изберите Макросы. Это покажет нам наши макросы в области под ним.

  1. Для вас необходимо где-нибудь на ленте поставить макрос. В этом примере изберите «Основная» в области «Главные вкладки». Потом изберите New Group.
  2. Изберите «Переименовать», чтоб отдать ему осмысленное имя.
  3. В окне «Переименовать» изберите один из значков, представляющих группу, потом введите «Мои макросы» в поле «Отображаемое имя».
  4. Изберите ОК, чтоб применить. Вы увидите изменение в области главных вкладок.

  1. Выбрав новейшие «Мои макросы» в области «Главные вкладки», изберите макрос Normal.NewMacros.Insert_Signature.
  2. Изберите «Добавить», чтоб вставить его в группу «Мои макросы».

  1. Естественно, вы возжелаете его переименовать. Выбрав макрос в области «Главные вкладки», изберите «Переименовать…»
  2. В окне «Переименовать» изберите значок и введите обычное имя в поле «Отображаемое имя:».
  3. Нажмите ОК, чтоб подтвердить изменение. Вы увидите изменение в области главных вкладок.
  4. Нажмите клавишу ОК под областью главных вкладок, чтоб окончить создание клавиши для макроса.

  1. Идите вперед и сделайте хоть какой блок подписи, который желаете. Добавьте скан вашей подписи либо остальные изображения. Как желаете. Когда это будет изготовлено, нажмите стрелку вниз под клавишей «Макросы».
  2. Изберите Приостановить запись. Вот и все. Макрос вставки подписи сотворен.

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

Как написать макрос

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

  1. Для вас нужен доступ к вкладке «Разраб», которая по дефлоту укрыта в Word. В верхнем левом углу Word изберите файл.

  1. В левом нижнем углу изберите Характеристики.

  1. В открывшемся окне изберите Настроить ленту.
  2. Справа найдите Developer и поставьте рядом с ним галочку.
  3. Изберите ОК, чтоб закрыть окно. Раскроется вкладка «Разраб».

  1. Изберите вкладку Разраб.
  2. Нажмите клавишу «Макросы».

  1. Введите означающее имя в поле Имя макроса: оставьте макрос в: как Normal.dotm, чтоб он применялся ко всем документам Word. Постоянно вводите описание в поле Описание :.
  2. Изберите «Сделать». Раскроется средство разработки Microsoft Visual Basic для приложений.

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

Dim s As Спектр
Dim numWords As Integer
Dim numSentences As Integer
numSentences = 0
numWords = 0

Для всякого s в ActiveDocument.Sentences
numSentences = numSentences + 1
numWords = numWords + s.Words.Count
последующий

MsgBox «Среднее количество слов в предложении» + Str (Int (numWords / numSentences)) + «. Лучше меньше 15 ».

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

  1. Нажмите клавишу «Сохранить» и закройте окно разработки.

  1. Сделайте клавишу на ленте Word, используя этот же способ, который показан в инструкциях «Как записать макрос» выше.
  2. Найдите клавишу, которую вы лишь что сделали, и проверьте ее.

Мой макрос не работает, когда я сохраняю документ Word

По дефлоту Word сохраняет файл с расширением .docx, что не дозволяет запускать макросы автоматом. Если вы желаете, чтоб макрос запускался, для вас необходимо поменять тип файла на Word Macro-Enabled Document (* .docm). Этот тип файла существует отчасти для борьбы с неуввязками сохранности макросов. Если вы видите это расширение файла в документе, который не ждали получить, будьте подозрительны.

Что еще можно созодать с макросами?

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

Ссылка на основную публикацию
Adblock
detector