Встроенные модули в excel

Знакомство с понятиями модуль, процедура, форма в VBA Excel. Модули разных типов. Создание пользовательской формы. Встроенные диалоговые окна.

Самый простой способ перейти в редактор VBA — при активном окне программы Excel нажать сочетание клавиш Alt+F11 (здесь используется левая клавиша Alt). Это сочетание работает во всех версиях программы. Если в открывшемся окне нет слева окна проводника «Project-VBAProject», вызовите его через главное меню, выбрав «View» — «Project Explorer». Внутренние окна в редакторе VBA можно перетаскивать и размещать в других местах главного окна.

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

Стандартный модуль

Стандартный модуль представляет из себя отдельный файл, встроенный в рабочую книгу Excel и принадлежащий всему проекту VBA (VBAProject) со всеми его объектами (ThisWorkbook, Worksheets, Charts, UserForms). Стандартный модуль можно экспортировать, импортировать или удалить. Его публичные процедуры с уникальными именами доступны во всех остальных модулях рабочей книги без дополнительной адресации. Для публичных процедур с неуникальными именами требуется указание имени модуля, из которого они вызываются.

Создание стандартного модуля:

  1. Откройте рабочую книгу Excel, в которую планируете добавить новый стандартный модуль, или создайте новую книгу в учебных целях.
  2. Откройте редактор VBA сочетанием клавиш Alt+F11.
  3. В окне редактора VBA нажмите на пункт меню «Insert» и в открывшемся списке выберите «Module».

Таким образом, вы создали новый стандартный модуль. В проводнике справа появилась папка «Modules» и в ней файл «Module1» (или «Module» с другим номером, если в вашей книге модули уже были). Такие же модули создаются при записи макросов встроенным рекордером.

Открыть или перейти в окно открытого стандартного модуля можно, дважды кликнув по его имени в проводнике, или открыв на нем правой кнопкой мыши контекстное меню и выбрав «View Code». Кроме того, все уже открытые модули доступны во вкладке «Window» главного меню.

Важное примечание: в Excel 2007-2016 книги с программными модулями сохраняются как «Книга Excel с поддержкой макросов (.xlsm)». Если вы добавили модуль в книгу «Книга Excel (.xlsx)», то, при ее сохранении или закрытии, программа Excel предложит сохранить ее как «Книга Excel с поддержкой макросов (.xlsm)», иначе изменения (созданные или импортированные модули) не сохранятся.

Модули классов

К модулям классов относятся модули книг, рабочих листов, диаграмм и пользовательских форм.

Модуль книги

Модуль книги принадлежит только объекту Workbook (Рабочая книга). Открыть или перейти в окно открытого модуля книги можно, дважды кликнув в проводнике на пункте «ЭтаКнига», или открыв на нем правой кнопкой мыши контекстное меню и выбрав «View Code». Кроме того, открытый модуль доступен во вкладке «Window» главного меню.

Модуль листа

Модуль листа принадлежит только объекту Worksheet (Рабочий лист). Открыть модуль листа можно, дважды кликнув в проводнике по его имени, или открыв на нем правой кнопкой мыши контекстное меню и выбрав «View Code». Кроме того, перейти в модуль листа можно из рабочей книги, кликнув правой кнопкой мыши по ярлыку этого листа и выбрав в контекстном меню «Просмотреть код». Открытый модуль доступен во вкладке «Window» главного меню.

Модуль диаграммы

Модуль диаграммы принадлежит только объекту Chart (Диаграмма, вынесенная на отдельный лист рабочей книги). Открыть его можно так же, как и модуль рабочего листа.

Модуль формы

Модуль формы принадлежит только объекту UserForm (Пользовательская форма). Откройте редактор VBA сочетанием клавиш Alt+F11 и нажмите на пункт меню «Insert». В открывшемся списке выберите «UserForm». Таким образом вы создадите новую пользовательскую форму «UserForm1». В проводнике справа появилась папка «Forms» и в ней файл «UserForm1». Перейти в модуль формы можно, дважды кликнув по самой форме, или кликнув по имени формы в проводнике правой кнопкой мыши и выбрав в контекстном меню «View Code». Кроме того, открытый модуль доступен во вкладке «Window» главного меню.

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

Между открытыми окнами форм и модулей можно переходить, нажав в главном меню вкладку «Window», где перечислены все открытые модули и формы (активный объект отмечен галочкой).

Процедура

Процедуры VBA Excel, размещаемые в любом модуле, подразделяются на 3 типа:

  • Sub (подпрограмма),
  • Function (функция),
  • Property (пользовательские свойства).

Главное отличие функции от подпрограммы заключается в том, что функция возвращает результат вычислений, а подпрограмма — нет. Процедура Property предназначена для создания пользовательских свойств и управления ими (используется не часто).

В редакторе VBA Excel перейдите в стандартный модуль и нажмите на пункт меню «Insert». В открывшемся списке выберите «Procedure…». Появится окно с предложением ввести название процедуры, выбрать тип и зону видимости. Создайте пару процедур с разной зоной видимости, пусть одна будет Sub, а другая — Function. В промежутке между началом и концом процедуры пишется программный код.

Private Sub Test()

‘Здесь пишется программный код

End Sub

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

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

Публичная процедура (Public) может быть записана и без явного указания видимости — зона видимости Public предполагается по умолчанию.

Первая запись:

и вторая запись:

равнозначны.

Форма

Формы в VBA Excel используются для создания диалоговых окон. Процедура создания новой формы описана в параграфе «Модуль формы». Обычно, вместе с новой формой открывается панель «ToolBox» с элементами управления, которые можно добавлять на форму. Если вы закрыли панель с элементами управлениями, отобразить ее снова можно через главное меню, выбрав «View» — «ToolBox».

Стоит добавить, что в VBA Excel есть два встроенных диалоговых окна — MsgBox и InputBox.

MsgBox — это окно для вывода информации с возвратом числового значения кнопки, нажатой пользователем.

InputBox — это окно с приглашением пользователя ввести какую-либо текстовую информацию. Есть еще расширенная версия этого окна — Application.InputBox, которую можно использовать для записи адреса выделяемого диапазона ячеек и не только для этого.

На чтение 5 мин Просмотров 778 Опубликовано 16.12.2021

Модулем называют положительное значение числа. Даже у отрицательных чисел он имеет положительную величину. Модуль в Экселе находится при помощи встроенных инструментов: функций ЗНАК, ABS, КОРЕНЬ. Вычислять модуль в Excel очень просто – понадобится пара кликов. Данный параметр может пригодиться как в вычислительных работах, так и в аналитических исследованиях.

Содержание

  1. С помощью функции ABS
  2. С помощью функции ЗНАК
  3. С помощью функции КОРЕНЬ

С помощью функции ABS

Все вычисления в Экселе реализованы специальными инструментами – функциями, обозначающими определенные математические действия. Для вычисления модуля специалистами Майкрософт предусмотрена функция ABS из списка формул в Excel. Формула может быть представлена двумя видами:

  • ABS(числовое значение).
  • ABS(адрес_ячейки).

Разберем на примере. Необходимо вычислить модуль числа -19. Вручную, в любой свободной ячейке потребуется написать выражение вида: =ABS(-19).

Для расчета остается нажать клавишу enter.

В ячейке отразится вычисленное значение, а формула будет указана в строке над рабочим полем.

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

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

В итоге столбец автоматически заполняется значениями модулей чисел из соседних ячеек. ABS в Excel является наиболее простым способом вычислить и записать модуль в ячейку. Функциональный элемент имеет элементарный синтаксис (вид построения) в формуле.

С помощью функции ЗНАК

Исходя из определения, модулем называется неотрицательное значение исследуемого числа.  Поэтому в Excel вычислить модуль числа можно при помощи параметра ЗНАК. Положительные числа в этом случае умножаются на 1, а отрицательные на -1. Получаемое абсолютное значение и будет являться модулем. Формула записывается следующим образом:

Выделяется ячейка, в которую будет вноситься формула и открывается окно Мастера функций. В excel такая функция как ЗНАК относится к математическим, поэтому выбираем соответствующий раздел. Поиск функции можно произвести через одноименное окно – язык функций русский. Нажимаем ОК.

Выбираем нужную ячейку при активном окне «Аргументы функции». В качестве аргумента необходимо задать ячейку с интересующим значением. Когда знак вычислен, остается обозначить операцию умножения на значение из ячейки, у которого знак определялся. В формуле выражение принимает конечный вид =ЗНАК(А2)*А2.

При необходимости весь столбец заполняется формулами с участием функции ЗНАК при помощи уже известного протягивания до заданного значения.

Данная функция является альтернативным способом вычисления модуля в Excel.

С помощью функции КОРЕНЬ

Модуль числа или массива чисел в Экселе может быть вычислен с помощью функции «Корень». В данной программе реализован расчет арифметического корня – вычисляются корни с четными степенями, имеющими знак + в любом случае. То есть, если извлечь квадратный корень от значения, полученного при возведении числа в квадрат, результатом будет являться абсолютная величина. Определить значение по модулю таким методом в excel возможно по следующим шагам:

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

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

Работаю системным администратором 10 лет. Программирую на PHP и Python. Способен объяснить технические моменты понятным языком.

Модуль

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

Стандартный модуль

Стандартный модуль представляет из себя отдельный файл, встроенный в рабочую книгу Excel и принадлежащий всем объектам рабочей книги, взаимодействующим с модулями (Workbook, Worksheet, UserForm). Стандартный модуль можно экспортировать, импортировать и удалять. Его публичные процедуры с уникальными именами доступны во всех остальных модулях рабочей книги без дополнительной адресации. Для публичных процедур с неуникальными именами требуется указание имени модуля, из которого они вызываются.

Создание стандартного модуля:

  1. Откройте рабочую книгу Excel, в которую планируете добавить новый стандартный модуль, или создайте новую книгу в учебных целях.
  2. Откройте редактор VBA сочетанием клавиш Alt+F11.
  3. В окне редактора VBA нажмите на пункт меню «Insert» и в открывшемся списке выберите «Module».

Таким образом, вы создали новый стандартный модуль. В проводнике справа появилась папка «Modules» и в ней файл «Module1» (или «Module» с другим номером, если в вашей книге модули уже были). Такие же модули создаются при записи макросов встроенным рекордером.

Открыть или перейти в окно открытого стандартного модуля можно, дважды кликнув по его имени в проводнике, или открыв на нем правой кнопкой мыши контекстное меню и выбрав «View Code». Кроме того, все уже открытые модули доступны во вкладке «Window» главного меню.

Важное примечание: в Excel 2007-2016 книги с программными модулями сохраняются как «Книга Excel с поддержкой макросов (.xlsm)». Если вы добавили модуль в книгу «Книга Excel (.xlsx)», то, при ее сохранении или закрытии, программа Excel предложит сохранить ее как «Книга Excel с поддержкой макросов (.xlsm)», иначе изменения (созданные или импортированные модули) не сохранятся.

Модуль книги

Модуль книги принадлежит только объекту Workbook (Рабочая книга). Открыть или перейти в окно открытого модуля книги можно, дважды кликнув в проводнике на пункте «ЭтаКнига», или открыв на нем правой кнопкой мыши контекстное меню и выбрав «View Code». Кроме того, открытый модуль доступен во вкладке «Window» главного меню.

Модуль листа

Модуль листа принадлежит только объекту Worksheet (Рабочий лист). Открыть модуль листа можно, дважды кликнув в проводнике по его имени, или открыв на нем правой кнопкой мыши контекстное меню и выбрав «View Code». Кроме того, перейти в модуль листа можно из рабочей книги, кликнув правой кнопкой мыши по ярлыку этого листа и выбрав в контекстном меню «Просмотреть код». Открытый модуль доступен во вкладке «Window» главного меню.

Модуль формы

Модуль формы принадлежит только объекту UserForm (Пользовательская форма). Откройте редактор VBA сочетанием клавиш Alt+F11 и нажмите на пункт меню «Insert». В открывшемся списке выберите «UserForm». Таким образом вы создадите новую пользовательскую форму «UserForm1». В проводнике справа появилась папка «Forms» и в ней файл «UserForm1». Перейти в модуль формы можно, дважды кликнув по самой форме, или кликнув по имени формы в проводнике правой кнопкой мыши и выбрав в контекстном меню «View Code». Кроме того, открытый модуль доступен во вкладке «Window» главного меню.

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

Между открытыми окнами форм и модулей можно переходить, нажав в главном меню вкладку «Window», где перечислены все открытые модули и формы (активный объект отмечен галочкой).

Другие способы

Если Вы забыли, как поставить модуль при помощи стандартной функции, есть несколько альтернативных способов, которые основаны на математических законах и реализованы в редакторе от Microsoft отдельным инструментами:

  1. Использование формулы ЗНАК, которая возвращает значение единицы, нуля или минус единицы, в зависимости от исходного числа. Умножив результат на первоначальную цифру, получим абсолютное значение. В случае с отрицательными числами произойдет перемножение, и итоговая цифра будет положительной. Запишем формулу для первой ячейки и воспользуемся функцией автозаполнения.

Модуль в экселе 4

  1. Использование функции КОРЕНЬ позволяет сделать модуль при помощи извлечения арифметического квадратного корня из квадрата числа, полученного при перемножении одно и того же значения самого на себя. Поскольку корень в excel всегда возвращает неотрицательное число, то такой прием также даст абсолютное значение.

Модуль в экселе 5

Как видите, найти модуль числа в excel всех поколений не составляет особого труда. Помимо специальной функции можно воспользоваться другими инструментами, принцип работы которых основан на математических законах. С полученными цифрами можно проводить любые операции. Более опытные пользователи могут интегрировать функцию ABS в большую формулу, избегая промежуточных действий, однако для этого нужно строго соблюдать синтаксис.

Форма

Формы в VBA Excel используются для создания диалоговых окон. Процедура создания новой формы описана в параграфе Модуль формы. Обычно, вместе с новой формой открывается панель «ToolBox» с элементами управления, которые можно добавлять на форму. Если вы закрыли панель с элементами управлениями, отобразить ее снова можно через главное меню, выбрав «View» – «ToolBox».

Стоит добавить, что в VBA Excel есть два встроенных диалоговых окна – MsgBox и InputBox.

MsgBox – это окно для вывода информации с возвратом числового значения кнопки, нажатой пользователем.

InputBox – это окно с приглашением пользователя ввести какую-либо текстовую информацию. Есть еще расширенная версия этого окна – Application.InputBox, которую можно использовать для записи адреса выделяемого диапазона ячеек и не только для этого.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Функция

Для того чтобы найти модуль числа в Microsoft Excel есть отдельная функция – ABS.

На заметку! Условное обозначение abs используется практически во всех языках программирования, в том числе и Visual Basic (VBA), который используется для написания макросов Excel.

Сейчас рассмотрим, как написать формулу поиска абсолютного значения правильно:

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

Модуль в экселе 2

  1. Чтобы формула посчитала абсолютное значение остальных ячеек, воспользуйтесь маркером автозаполнения.

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

Примеры

Чтобы закрепить понимание описания модуля в Excel и принципов его работы, стоит рассмотреть пару простых примеров, демонстрирующих работу функции.

Для вычисления модуля некоторого заданного числа или математического примера, например разности 2 и 5, следует воспользоваться следующей записью:

=ABS(2-5)

Результатом данного запроса будет число «3».

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

=СУММ(ABS(A1:C3))

Примеры использования функции ABS в Excel

Пример 1. Определить длину проекции отрезка на ось Ox, который задан координатами начальной (-7;-4) и конечной (19;44) точек.

Исходные данные:

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

B4 и B2 – начальная и конечная координаты соответственно. Разность этих координат является искомой длиной проекции. Аналогично найдем величину проекции на ось Oy. Полученные результаты:

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

Как вычислить модуль в «Экселе»?

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

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

Суммирование и условное суммирование

Функция СУММ

Суммирует свои аргументы. Максимальное число аргументов 255.

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

Если же в качестве аргумента функции принимается константа с логическим значением, то ЛОЖЬ приравнивается к нулю, а ИСТИНА к единице.

Синтаксис: =СУММ(число1; [число2]; …), где

  • Число1 – обязательный аргумент, являющийся числом либо ссылкой на ячейку или диапазон ячеек, содержащих число;
  • Число2 и последующие аргументы – необязательные аргументы, аналогичные первому.

Пример использования:

  • В данном примере значение ячейки A5 игнорируется.

  • =СУММ(1;2;3;4;»текст») – данный вариант вернет ошибку #ЗНАЧ!, т.к. последний аргумент явно принимает текстовое значение.
  • =СУММ(ИСТИНА;ЛОЖЬ) – формула вернет значение 1.

Функция СУММПРОИЗВ

Производит суммирование произведений массивов либо диапазонов.

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

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

Синтаксис: =СУММПРОИЗВ(массив1; [массив2]; …), где

  • Массив1 – обязательный аргумент, являющийся числом либо ссылкой на ячейку, диапазон ячеек или массив, содержащих числовое значение;
  • Массив2 и последующие аргументы – необязательные аргументы, аналогичные первому.

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

Пример использования:

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

  • В данном случае формула возвращает ошибку, потому что, не смотря на одинаковое количество элементов в двух диапазонах, они имеют разные типы, т.е. A1:A5 – вертикальный диапазон, а B1:F1 – горизонтальный диапазон.

Функция СУММЕСЛИ

Возможно, одна из самых полезных функций, по мнению office-menu. Она производит суммирование элементов, которые соответствуют заданным условиям.

Синтаксис: =СУММЕСЛИ(диапазон_условия; критерий;[диапазон_суммирования]), где

  • диапазон_условия – обязательный атрибут. Ссылка на ячейку или диапазон ячеек, которые необходимо проверить на совпадение с условием;
  • критерий – обязательный атрибут. Содержит в себе конкретное значение либо условие для проверки. Условия типа больше, меньше, равно либо их комбинации всегда заключаются в кавычки.
  • диапазон_суммирования – необязательный атрибут. Ссылка на ячейку либо диапазон ячеек, которые необходимо просуммировать в случае, если элемент диапазона условия подходит под критерий. Если аргумент не указан, то по умолчанию он принимает значение первого аргумента. Также, если диапазон указан не правильно, т.е. для вертикального диапазона условия, указан горизонтальный диапазон суммирования, то последний заменяется на вертикальный, не меняя своего первого элемента, т.е. претерпевает транспонирование.

Пример использования:

  • В данном примере производится суммирование чисел, которые больше 2. Так как диапазон суммирования не указан, то по умолчанию принимает диапазон условия.

  • В следующем примере используются разные типы диапазонов, поэтому 3 аргумент меняет ссылку с A1:B1 на A1:A2, и функция возвращает значение 2.

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

В первом случае, необходимо произвести суммирование по B1:B5, если элемент из A1:A5 больше нуля. Возвращаемое значение 4, так как текстовый элемент A3 игнорируется.

Теперь изменим условие и найдем сумму, если элементы для условия больше или равняются «а». По условиям сортировки все числа являются меньшими любым буквам, поэтому результат должен быть 5. Но так как в условии задано сравнение с текстовой строкой, то все числовые значения отбрасываются. Чтобы они учитывались, их необходимо перевести в текстовый формат. Также можно использовать массивы, для лучшего контроля перевода чисел в текст – {=СУММ(ЕСЛИ(ТЕКСТ(A1:A5;0)<=»а»;B1:B5;0))}.

Функция СУММЕСЛИМН

Выполняет те же действия, что и СУММЕСЛИ, но может проверять различные условия по нескольким диапазонам.

Синтаксис: =СУММЕСЛИМН(диапазон_суммирования; диапазон_условия1; критерий1; [диапазон_условия2]; [критерий2]; …), где аргументы в точности совпадают с аргументами функции СУММЕСЛИ, за исключением того, что диапазон суммирования и первая пара диапазон условия — критерий являются обязательными аргументами. Все последующие пары (от диапазон_условия2; критерий2 до диапазон_условия127; критерий127) необязательны.

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

Пример использования:

Необходимо узнать сумму ячеек, удовлетворяющих условиям:

  1. По A1:A5 больше 2;
  2. По B1:B5 меньше или равно “г”.

Таким образом, по первому критерию подходят 3 ячейки, по второму 4, но ячеек, которые подходят под оба условия две – C3 и C4. Поэтому формула вернет значение 2.

Модуль являет собой положительное значение любого заданного числа. Величина не бывает отрицательной даже у чисел со знаком минус, при этом для положительного числа всегда равна ему же. Формула проста, и, работая с табличными данными, её можно сразу вписывать в поле или применить «Мастер функций» для расчётов.

Рассмотрим, как выполняется вычисление в табличном процессоре Excel из офисного пакета Microsoft и какие инструменты для этого задействуются.

Модуль ABS в Excel

Особенности применения функции

Рассчитывается модуль числа в Excel посредством основного инструмента – ABS, но могут быть применены и иные встроенные средства (способы рассмотрим далее).

Функция ABS записывается в таком виде: =ABS(число), причём число – обязательный и единственный аргумент, указывающий на определённое вещественное число, абсолютное значение которого требуется найти.

Особенности использования ABS:

  • Функцией принимаются аргументы в виде числовых значений, текстовых представлений чисел или логических данных (например, ИСТИНА, ЛОЖЬ).
  • При том, что аргументом функции указана текстовая строка, которую нельзя преобразовать в числовое значение (например, =ABS(число)), тогда итогом выполнения станет ошибка #ЗНАЧ!.
  • ABS может быть применена в виде формулы массива для взаимодействия с объёмными данными.

ABS в Excel

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

Из определения ясно, что модуль всегда будет положительным независимо от наличия отрицательного знака перед цифрой и собственно, значением этого же числа. То есть, модуль -5 будет равен 5, при этом модуль 5 также равняется 5. Записывают определение формулой: |-a| = |a| = a. Так, в случае с вектором со значением -5, знак «минус» говорит о его обратном направлении, тогда для нахождения длины направленного отрезка потребуется вычислить модуль, поскольку расстояние между точками также не может определяться отрицательной величиной.

Использование ABS

Разбираясь, как поставить модуль в Microsoft Excel, стоит начать с основной функции, предназначенной для этой задачи. Её название является аббревиатурой и происходит от англ. Absolute («абсолютный»).

Стандартный вариант

Формула для расчёта модуля в Excel может выглядеть таким образом:

  • ABS(число);
  • ABS(адрес_ячейки_с_числом).

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

Способ 1:

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

ВАЖНО. Многие вписывают в ячейке выражение |-a|, поскольку знак модуля обозначается в математике как |a|, то есть с помощью символа ||, но тогда программа выдаёт ошибку, так как не распознаёт данный синтаксис. Чтобы правильно поставить модуль в Excel, используем скобки.

Способ 2. Если нет желания прописывать формулы вручную, можно воспользоваться удобным инструментом Excel – «Мастером функций»:

  • жмём по ячейке (в ней будет сохранён результат), нажимаем кнопку «Вставить функцию» (обозначена как fx);Вставка функции в ячейку Excel
  • в окне «Мастера функций» выбираем из доступных вариантов «ABS», жмём «Ок»;Окно мастера функций в Excel
  • в открывшемся окошке для внесения аргумента функции вписываем необходимую цифру в графе «Число»;
  • если нужно взять цифру из тех, что уже есть в таблице, жмём на кнопку справа от строчки ввода – окно свернётся, после чего жмём по ячейке, где располагается необходимая цифра. Аргумент добавится, снова жмём кнопку справа от строчки ввода и попадаем в окно «Аргументы функции», где строка будет уже заполнена;Аргументы функции число в Excel
  • указываем адрес ячейки (или выбираем её нажатием в таблице), жмём «Ок»;
  • в выбранной ячейке получим итог расчётов;Расчёт модуля в ячейке таблицы в Excel
  • при необходимости подсчёта по всему столбцу формулу модуля можно потянуть и на другие ячейки, для чего наводим курсор на ячейку с уже вычисленным модулем, при появлении значка «+» зажимаем ЛКМ и тянем вниз до нужной ячейки;Растягивание формулы в Excel
  • во всём столбце или в отдельно выделенных мышью ячейках получим результат.Результат растягивания формулы в Excel

ABS в формулах

Применение функции не ограничивается поиском модуля, используя её в комплекте с формулами, можно выполнять задачи разного характера. Рассмотрим на примере определения разницы между наименьшим значением со знаком минус и положительным:

  • создан массив данных;
  • в строчке формул пишем выражение: {МИН(ABS(B3:B12))}. Фигурные скобки здесь говорят о взаимодействии с массивом, и ставить их следует путём использования горячих клавиш Ctrl+Shift+Enter после написания формулы, тогда модуль рассчитывается в каждой ячейке в диапазоне B3-B12 (без использования массивов такая запись провоцирует ошибку).

Пример применения:

Пример ABS в формуле

Примеры расчётов

Рассмотрим вероятные примеры использования ABS, в том числе в формулах.

Пример 1. Определение проекции отрезка на оси абсцисс (Х) и ординат (Y)

Из условия задачи известны координаты отрезка А (-12; -10) и В (-27;-36). В Excel для решения выполняются следующие действия:

  • заполняем имеющимися сведениями таблицу;
  • посредством ABS рассчитываем проекцию на ось Х (указываем номера ячеек В4-В2);
  • для расчёта проекции на ось Y указываем ячейки В5-В3.

В результате получим:

ABS для расчёта координат

Пример 2. Подсчёт расходов предприятия

Задача состоит в суммировании затрат за определённый отрезок времени путём сложения отрицательных значений (ими представлены расходы) по модулю. В Excel выполняется просто:

  • создаём массив данных;
  • прописываем в соответствующем поле формулу: {=СУММ(ЕСЛИ(B3:B12<0;ABS(B3:B12);0))}. Фигурные скобки ставим нажатием Ctrl+Shift+Enter в конце формулы, указывая на работу с массивом;
  • анализ данных выявляет наличие отрицательных чисел, их модуль вычисляется, и данные за указанный период суммируются, при этом плюсовые значения в расчёт не берутся.

Результат выглядит так:

ABS в расчёте расходов

Другие варианты получения абсолютного значения

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

ЗНАК

Идея состоит в том, чтобы отрицательные числа умножать на -1, а положительные на единицу. Формула вернёт значение в зависимости от исходной цифры. Так, путём умножения результата на изначальное число в Excel мы получаем абсолютное значение по модулю. Если взято отрицательное число, в итоге перемножения получится положительное.

КОРЕНЬ

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

КОРЕНЬ в Excel

ЕСЛИ

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

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

Язык VBA

Через ABS модуль находят в большинстве языков программирования, включая VBA. В модуле Visual Basic запрос может быть таким: A=ABC(-7). Здесь элементу А присвоено число 7, а ABS применяется для получения абсолютного значения.

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

VBA Macro is for developers. In Excel, macro is a piece of code written in VBA and VBA is Microsoft’s programming language, it stands for Visual Basic for Applications. The module is a file with a .bcf extension that stores the code written in the Visual Basic for Applications editor. Let’s learn, how to run a code from a module in excel VBA. 

Run a code from the Module in Excel VBA

Step 1: Go to Developer Tab, under the code section you will find Visual basic. Now click on Visual Basic

Click-on-Visual-Basic

Step 2: Microsoft Visual Basic for Applications(VBA) dialogue box appears. In the Menu bar, go to Insert Tab, and click on Module.

click-on-Module

Step 3: A Module named Module1 is created under the VBA project. 

Create-a-new-module

Step 4: Write the code you want to run in Microsoft excel. For example, a message box will appear stating “Learning geeks for geeks”. 

Add-code

Step 5: In the Tools bar. Click on the run button. You can also press F4(Fn + f4) on your keyboard to run the module code. 

Press-run-button

Step 6: The code pauses and the Microsoft VBA editor minimizes and a message box appears in the MS Excel worksheet. Click Ok. The code resumes and the Microsoft VBA editor maximizes again. 

A-message-box-appear

Scope of Module in VBA 

The scope of the module in VBA is workbook level. You can use the written modules in different worksheets. You have created a module named module1 in shee1 above. A sub-procedure named geeksforgeeks() is also created. We will use this procedure to check the scope of a module in VBA. Following are the steps: 

Step 1: Click on the plus and a new worksheet named sheet2 is created. 

Click-on-the-plus-to-create-a-new-worksheetNew-worksheet-is-created

Step 2: Go to the Developer tab, and click on Macros

Click-on-Macros

Step 3: A dialogue box named Macro appears. In the macro name, you will find a procedure name geeksforgeeks(). This was the procedure that we wrote in sheet1 of this workbook. This proved that the scope of the module is workbook level. Select it, and click on Run

Click-on-Run

Step 4: The code written in the module1 sub procedure gets executed. A dialogue box appears. 

A-dialogue-box-appears

Хитрости »

1 Май 2011              300330 просмотров


Что такое модуль? Какие бывают модули?

Любой код VBA должен где-то храниться. Для хранения кодов в VBA используются модули, которые хранятся в книге. Книга может содержать сколько угодно модулей. Каждый модуль в свою очередь может содержать множество процедур(макросов).
Все имеющиеся в книге модули можно посмотреть через редактор VBA (Alt+F11). Имеющиеся модули отображены в левой части редактора в проводнeике объектов(Project Explorer).
Объекты проектарис.1
Сам проводник объектов может быть не отображен по умолчанию и тогда его необходимо отобразить: нажать Ctrl+R либо в меню редактора VBA-ViewProject Explorer
Проводник объектов

Модули делятся на пять основных типов:

  • Стандартный модуль
  • Модуль листа
  • Модуль книги
  • Модуль пользовательской формы
  • Модуль класса
  • Перенос, импорт и экспорт модуля

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

Для того, чтобы создать новый стандартный модуль(Module), модуль класса(ClassModule) или пользовательскую форму(UserForm) надо просто в окне Проводника объектов(Project Explorer) щелкнуть правой кнопкой мыши, выбрать пункт Insert и затем тип добавляемого объекта(ModuleClassModuleUserForm). Так же добавить модуль можно и через меню: Insert -тип модуля.
Удалить тоже просто: щелкнуть правой кнопкой мыши на нужном модуле в окне проекта и выбрать Remove. Подробнее про удаление описано в конце этой статьи: Удаление модулей

 
СТАНДАРТНЫЙ МОДУЛЬ
на рис.1 Module1.
Самый распространенный тип модулей, который используется в большинстве случаев. Именно в них макрорекордер создает записываемые макросы. Все коды и процедуры в таких модулях пишутся вручную, либо копируются из других источников(другого модуля, с этого сайта и т.п.). В основном именно в стандартных модулях содержится большая часть кодов. Они предназначены для хранения основных процедур и Public переменных, которые могут быть доступны впоследствии из любого модуля. Как создать стандартный модуль: в окне проводника объектов щелкаем правой кнопкой мыши-InsertModule. При записи макрорекордером модули создаются автоматически и им автоматически присваиваются имена.
Многие коды, опубликованные в статьях на сайте необходимо размещать именно в стандартных модулях. Для этого достаточно создать новый стандартный модуль, скопировать текст кода с сайта и вставить.

 
МОДУЛЬ ЛИСТА
Лист1 или Sheet1 — на рис.1: Лист1(Лист1),Лист2(Лист2),Лист3(Лист3).
Для каждого листа книги имеется свой отдельный модуль. Попасть в модуль листа проще, чем в остальные модули. Для этого надо просто щелкнуть правой кнопкой мыши по ярлычку листа и выбрать из контекстного меню пункт Исходный текст(View Code)

в зависимости от версии Excel этот пункт на русском может называться так же: Просмотреть код или Исходный код

:
Перейти в модуль листа

Можно и более трудным путем пойти — через редактор VBA: Alt+F11 и в окне Проводника объектов(Project Explorer) дважды щелкнуть по объекту с именем листа или правая кнопка мыши на модуле листа —View code.
Размещая код в модуле листа следует помнить, что при копировании или переносе данного листа в другую книгу код так же будет скопирован, т.к. является частью листа. Это и плюс и минус одновременно. Плюс в том, что разместив код в модуле листа можно использовать этот лист в качестве шаблона для распространения со своими кнопками вызова этих кодов(в том числе создания книг кодом) и весь функционал будет доступен. Минус же заключается в некоторых нюансах обращения к ячейкам(подробнее можно ознакомиться в этой статье: Как обратиться к диапазону из VBA) и необходимости размещения ВСЕХ используемых процедур в этом листе, иначе при переносе в другие книги коды могут работать с ошибками.

В модуле листа содержатся встроенные событийные процедуры, каждая из которых отвечает за обработку определенного события на этом листе. Посмотреть их можно так: выбираете объект(на рисунке ниже список в левой части) Worksheet, а в правом списке выбираете событие(в этом списке все процедуры, доступные для выбранного листа):
Окно выбора процедур и объектов
Процедуры, события для которых уже используются, выделяются жирным шрифтом.

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

  • Activate — возникает при активации самого листа(но не возникает, если произошел переход из одной книги в другую и этот лист является там активным)
  • BeforeDoubleClick — возникает при двойном клике мыши на любой ячейке листа. Важно обращать внимание на передаваемые аргументы: Target и Cancel. Target — ссылка на ячейку, в которой было произведено действие; Cancel — отвечает за отмену режима редактирования
  • BeforeRightClick — возникает при клике правой кнопкой мыши на любой ячейке листа. Важно обращать внимание на передаваемые аргументы: Target и Cancel. Target — ссылка на ячейку, в которой было произведено действие; Cancel — отвечает за отмену показа всплывающего меню
  • Calculate — возникает при пересчете функций и формул на листе
  • Change — возникает при изменении значений ячеек на листе. Важно обращать внимание на передаваемый аргумент Target. Target — ссылка на ячейку, которая была изменена. Может отличаться от активной в момент обработки ячейки
  • Deactivate — возникает при переходе с этого листа на другой лист этой же книги
  • FollowHyperlink — возникает при переходе по гиперссылке, созданной в этом листе
  • SelectionChange — возникает при изменении адреса выделенной ячейки/области. Важно обращать внимание на передаваемый аргумент Target. Target — ссылка на диапазон ячеек, которые были выделены. Совпадает с выделенными на текущий момент ячейками

Достаточно важный момент: если захотите познакомиться поближе с событийными процедурами, всегда обращайте внимание на переменные, которые передаются в качестве аргументов в процедуру. В большинстве случаев рекомендую использовать именно эти переменные, а не выдумывать всякие возможности для вычисления объекта, который послужил причиной возникновения события. Для события листа Worksheet_Change это переменная Target. Для примера вставьте приведенный ниже код в модуль любого листа:

Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "Адрес измененной ячейки: " & Target.Address & _
           "; Адрес активной ячейки: " & Selection.Address, vbInformation, "www.excel-vba.ru"
End Sub

После этого запишите в ячейку A1 значение 5 и нажмите Enter. Событие Change сработает в момент завершения редактирования — т.е. в момент нажатия Enter. При этом будет произведен переход на ячейку A2(в большинстве случаев, если настройками не задано иное) и появится сообщение, которое покажет, что изменили ячейку A1, а выделена сейчас A2. Т.е. Target — это всегда ссылка именно на измененную ячейку независимо от того, что сейчас выделено. Данное событие(Worksheet_Change) не будет срабатывать при изменении значений ячеек с формулами. Только ручной ввод.

Примечание: для всех кодов, приведенных на сайте, достаточно просто открыть необходимый модуль(книги или листа) и вставить предложенный код. Корректировка может понадобиться только в случаях, когда в модуле Листа или Книги вашего файла уже имеется код в необходимой событийной процедуре.

 
МОДУЛЬ КНИГИ
ЭтаКнига или ThisWorkbook:
ЭтаКнига
В модуль книги можно попасть только через проводник объектов(Project Explorer) редактора VBA — двойной щелчок по ЭтаКнига (ThisWorkbook) или правая кнопка мыши на модуле —View code. В модуле книги так же содержатся «встроенные» событийные процедуры. Так же как и для листа выбираем в списке объектов(вверху слева) Workbook. В правом окне выбора процедур, так же как и с модулем листа, будут все процедуры, доступные для объекта ЭтаКнига. Пример использования событийных процедур книги можно посмотреть в статье Как отследить событие(например выделение ячеек) в любой книге?
Но там применяются все те же правила — главное не забывать про аргументы, доступные из этих процедур и передаваемые им самим Excel. Например, для события Workbook_BeforeClose доступен аргумент Cancel. Это можно использовать, если не хотите, чтобы книгу закрыл пользователь, не заполнив ячейку A1. Вот пример подобного кода:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Me.Sheets("Отчет").Range("A1").Value = "" Then
        MsgBox "Необходимо заполнить ячейку A1 на листе 'Отчет'", vbCritical, "www.excel-vba.ru"
        Cancel = True 'отменяем закрытие книги
    End If
End Sub

Из кода видно, что на листе «Отчет» должна быть не пустой ячейка A1(лист «Отчет» тоже должен существовать в этой книге). Но есть и еще одна вещь — какое-то Me. Это краткое обращение к объекту модуля класса, в данном случае это равнозначно обращению ThisWorkbook. И еще один пример кода для модуля ЭтаКнига, который запрещает сохранять исходную книгу, разрешая сохранить её только через пункт Сохранить как(SaveAs):

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI = False Then 'используется простое сохранить
        MsgBox "Эта книга является шаблоном. Сохранять её можно только через Сохранить как", vbCritical, "www.excel-vba.ru"
        Cancel = True 'отменяем сохранение книги
    End If
End Sub

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

 
МОДУЛИ ФОРМ
UserForm — на рис.1 UserForm1.
Содержатся внутри

Пользовательской формы(UserForm)

и её объектов. В Пользовательских формах в основном все завязано именно на событийных процедурах самой формы и на элементах этой формы(Кнопки, ТекстБоксы, КомбоБоксы(выпадающие списки) и т.д.). Очень удобно использовать Пользовательские формы в своих приложениях для общения с пользователем. Т.к. через формы очень удобно отслеживать действия пользователя и можно запретить доступ к листам с данными, путем их скрытия. Создается форма так же как и модуль: в окне проводника объектов щелкаем правой кнопкой мыши-InsertUserForm. Примеры кодов с использованием форм можно посмотреть в статьях: Каждому пользователю свой лист/диапазон, Как оставить в ячейке только цифры или только текст?

 
МОДУЛЬ КЛАССА
ClassModule — на рис.1 Class1.
В большинстве случаев создается специально для отслеживания событий различных объектов. Вряд ли понадобиться начинающим изучение VBA, хотя все зависит от поставленной задачи. Но обычно начинающим изучать это кажется слишком сложным. В любом случае, перед работой с модулями классов лучше научиться хоть чуть-чуть работать с обычными модулями и самостоятельно писать процедуры. Как добавить такой модуль: в окне проводника объектов щелкаем правой кнопкой мыши-InsertClass Module. Подробнее про модули классов и работу с ними можно почитать в этой статье: Работа с модулями классов. Там описаны все основные принципы и приложен файл примера.

УДАЛЕНИЕ МОДУЛЯ

Действия по удалению любого из модулей одинаковы для всех типов. Для этого необходимо перейти в проект VBA нужной книги, выбрать нужный модуль, щелкнуть по нему правой кнопкой мыши и в появившемся меню выбрать Remove (Имя модуля)…(Remove Module1, Remove UserForm1, Remove Class1 и т.п.). После этого появится окно с запросом «Do you want to export (имя модуля) before removing it?». Это означает, что VBA спрашивает: хотите ли Вы сохранить копию кодов модуля перед удалением? Как правило выбирать следует Нет. Но если Вы хотите сохранить текст кодов из удаляемого модуля в отдельном файле, то соглашаетесь, нажав Да. Будет предложено выбрать папку для сохранения модуля и можно даже задать ему отдельное имя.

ПЕРЕНОС, ИМПОРТ и ЭКСПОРТ МОДУЛЯ

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

UserForm

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

ЭтаКнига

(откуда хотим копировать) -копируем весь код -переходим в модуль ЭтаКнига второй книги и вставляем скопированное:
Копировать модуль листа/книги

Экспорт модуля(сохранение в отдельный файл)

Если же надо сохранить стандартный модуль, модуль класса или модуль формы и не переносить сразу же в другую книгу, то можно экспортировать модуль. Для чего это может быть нужно? Как правило, чтобы перенести коды из дома на работу, переслать кому-то на другой ПК(пересылка файла с макросами может быть запрещена политикой безопасности компании) и т.п. Делается это просто: щелкаем на модуле правой кнопки мыши —Export file.
У экспортируемых модулей есть разные расширения, в зависимости от типа модуля. Для стандартных модулей это

.bas

(Module1.bas), для модулей класса —

.cls

(Class1.cls). А вот для модулей форм будет создано целых два файла:

UserForm1.frm

и

UserForm1.frx

. Их важно хранить вместе — один без другого не может быть импортирован в дальнейшем в файл. В файле

.frx

хранится информация об визуальном отображении формы и её элементах, если можно так сказать. В файле

.frm

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

Импорт модуля(перенос экспортированного ранее в новую книгу)

Для переноса экспортированного модуля в другую книгу надо просто в проводнике объектов выделить нужный проект правой кнопкой мыши —Import module -выбрать в диалоговом окне нужный модуль.
Экспортировать можно любой модуль, а вот импортировать — нет. Модули листов и книг хоть и экспортируются в отдельные файлы(кстати, с расширением .cls), но импортировать их не получится в том виде, как это предполагается. Они будут импортированы как новые модули класса и только. Поэтому для переноса кодов из модулей листов и книг придется использовать все равно копирование и вставку непосредственно кодов.
И в довершение — можно переносить модули автоматически, кодами VBA: Как добавить код процедуры программно, скопировать модуль

Также см.:
Копирование модулей и форм из одной книги в другую
Что такое макрос и где его искать?
Как удалить макросы в книге?


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

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

Содержание

  1. Принцип нахождения с помощью функции ABS
  2. Как найти модуль для нескольких чисел одновременно
  3. Нахождение модуля с помощью функции «Корень»
  4. Альтернативное нахождение с помощью функции «Знак»
  5. Подведем итоги

Принцип нахождения с помощью функции ABS

Модуль — это абсолютная величина. То есть, если необходимо найти его от числа -46, то ответ будет — 46 без знака минус. Но чтобы найти значение более сложных выражений, которое посчитать быстро в уме проблематично, можно воспользоваться функцией ABS. Стоит отметить, что данный инструмент работает во всех версиях Microsoft Office. Рассмотрим принцип ее работы на примере программы 2016 года выпуска. Обозначение синтаксиса данной программы: =АBS (число). Но знания этой аббревиатуры недостаточно, главное правильно применить ее на практике.

  1. Откройте программу Microsoft Excel, на пустом листе в одной из ячеек пропишите число, от которого необходимо найти модуль. Предположим, это -12.

modul-chisla-v-excel-kak-najti-modul-chisla-v-excel

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

modul-chisla-v-excel-kak-najti-modul-chisla-v-excel

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

Обратите внимание! Для того чтобы расчет функции получился правильным, необходимо использовать при вводе строго латинские буквы. В противном случае система будет выдавать ошибку.

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

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

  1. Открываем программу и кликаем по той ячейке, в которой необходимо будет отобразить результат расчетов. Затем в этом месте делаем клик ПКМ и вызываем контекстное меню. В нем выбираем «Вставить функцию». Если такого обозначения нет, тогда переходим во вкладку «Формулы» и прямо в верхнем левом углу находим необходимый нам инструмент.

modul-chisla-v-excel-kak-najti-modul-chisla-v-excel

3
  1. Перед нами открывается окно «Вставка функции», здесь в выпадающем списке выбираем «Математические» и находим «ABS». В конце нажимаем на кнопку «ОК».

modul-chisla-v-excel-kak-najti-modul-chisla-v-excel

4
  1. Появляется следующее окошко, которое называется «Аргументы функции». Здесь нам необходимо в поле «Число» прописать значение, которое нужно использовать для нахождения модуля. У нас это число с минусом (-16). Жмем кнопку «ОК».

modul-chisla-v-excel-kak-najti-modul-chisla-v-excel

5

Совет! Кнопку «ОК» можно не нажимать, так как результат значения сразу видно в диалоговом окне. При закрытии «Аргументов функции» мы можем заметить, что выбранное нами число из отрицательного превратилось в положительное. Соответственно, можно считать, что способ нахождения математического модуля выполнен верно.

Как найти модуль для нескольких чисел одновременно

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

  1. Имея четко сформированную таблицу, в ячейке, в которой необходимо найти модуль, делаем клик мышью, затем перемещаемся в строку для записи формул.

modul-chisla-v-excel-kak-najti-modul-chisla-v-excel

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

modul-chisla-v-excel-kak-najti-modul-chisla-v-excel

7
  1. Мы видим, что число изменило свой знак, соответственно, функция применилась корректно. Теперь, чтобы найти модуль для оставшихся цифр, нам необходимо взять границу ячейки и протянуть ее по всему диапазону, в котором присутствуют численные значения, чтобы использовать маркер автозаполнения.

modul-chisla-v-excel-kak-najti-modul-chisla-v-excel

8

Обратите внимание! Большинство пользователей прописывают формулу для нахождения модуля с вот такими знаками I-16I, причем еще и записывают их в скобки. Вместо корректного результата в таком случае появятся только ошибки, так как система программы Microsoft Excel независимо от версии документа не понимает подобный синтаксис.

Нахождение модуля с помощью функции «Корень»

Функция «Корень» в Excel тоже идеально подходит для нахождения модуля числа. Так как в офисной программе применяется понятие вычисления арифметического корня, то подходит он только для четных степеней. Соответственно, нечетные числа найдены не будут.

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

Альтернативное нахождение с помощью функции «Знак»

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

Подведем итоги

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

Оцените качество статьи. Нам важно ваше мнение:

Это краткое пошаговое руководство предназначено для начинающих пользователей и рассказывает о том, как вставлять код VBA (Visual Basic for Applications) в книгу Excel, и как запускать вставленный макрос для выполнения различных задач на этом листе.

Большинство пользователей не являются гуру Microsoft Office. Они могут не знать всех тонкостей работы той или иной функции, и не смогут ответить на вопрос, как отличается скорость выполнения макроса VBA в Excel 2010 и 2013. Многие просто используют Excel, как инструмент для обработки данных.

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

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

    1. Открываем рабочую книгу в Excel.
    2. Нажатием Alt+F11 вызываем окно редактора Visual Basic
    3. На панели Project-VBAProject кликаем правой кнопкой мыши по имени рабочей книги (в левой верхней части окна редактора) и в контекстном меню выбираем Insert > Module.
    4. Копируем код VBA (с веб-страницы или из другого источника) и вставляем его в правую область редактора VBA (окно Module1).Подсказка: Как увеличить скорость выполнения макроса?

    В самом начале кода Вашего макроса VBA должны содержаться строки:

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

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

      В самое начало кода после всех строк, начинающихся с Dim (если строк, начинающихся с Dim нет, то вставляем сразу после строки Sub):

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic

    Вставляем и запускаем макрос в Excel

    1. Нажимаем Alt+Q, чтобы закрыть окно редактора VBA и вернуться к книге Excel.

    Запускаем макрос VBA в Excel

    Чтобы запустить только что добавленный макрос, нажмите Alt+F8. Откроется диалоговое окно Макрос (Macro). В списке Имя макроса (Macro name) выберите нужный макрос и нажмите кнопку Выполнить (Run).

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

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

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

    Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно — редактор программ на VBA, встроенный в Microsoft Excel.

    macro1.jpg

    • В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис — Макрос — Редактор Visual Basic(Toos — Macro — Visual Basic Editor).
    • В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer) . Выбираем Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer) . Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic(Visual Basic Editor)

      :

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

    macro2.jpg

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

      Обычные модули — используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert — Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:

    macro3.jpg

    macro4.jpg

    macro5.jpg

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

    macro6.jpg

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

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

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

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

    • Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу — запись останавливается.
    • Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное).
    • Если во время записи макроса макрорекордером вы ошиблись — ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) — во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.

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

    • в Excel 2003 и старше — выбрать в меню Сервис — Макрос — Начать запись(Tools — Macro — Record New Macro)
    • в Excel 2007 и новее — нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)

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

    macro7.jpg

    • Имя макроса — подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
    • Сочетание клавиш — будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис — Макрос — Макросы — Выполнить(Tools — Macro — Macros — Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
    • Сохранить в. — здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
      • Эта книга — макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
      • Новая книга — макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т.е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
      • Личная книга макросов — это специальная книга Excel с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.

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

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

      Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или — в старых версиях Excel — через меню Сервис — Макрос — Макросы (Tools — Macro — Macros) :

      macro8.jpg

      • Любой выделенный в списке макрос можно запустить кнопкой Выполнить(Run) .
      • Кнопка Параметры(Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
      • Кнопка Изменить(Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.

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

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

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

      Откройте меню Сервис — Настройка (Tools — Customize) и перейдите на вкладку Команды (Commands) . В категории Макросы легко найти веселый желтый «колобок» — Настраиваемую кнопку (Custom button) :

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

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

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

      macro11.jpg

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

      macro12.jpg

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

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

      • В Excel 2003 и старше — откройте панель инструментов Формы через меню Вид — Панели инструментов — Формы (View — Toolbars — Forms)
      • В Excel 2007 и новее — откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer)

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

      macro13.jpg

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

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

      Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция — только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).

      Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert — Module и введем туда текст нашей функции:

      macro14.jpg

      Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка — Функция) в категории Определенные пользователем (User Defined) :

      macro15.jpg

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

      Любой код VBA должен где-то храниться. Для хранения кодов в VBA используются модули, которые хранятся в книге. Книга может содержать сколько угодно модулей. Каждый модуль в свою очередь может содержать множество процедур(макросов).
      Все имеющиеся в книге модули можно посмотреть через редактор VBA (Alt+F11). Имеющиеся модули отображены в левой части редактора в проводнeике объектов(Project Explorer).
      рис.1
      Сам проводник объектов может быть не отображен по умолчанию и тогда его необходимо отобразить: нажать Ctrl+R либо в меню редактора VBA-View-Project Explorer

      Модули делятся на пять основных типов:

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

      Для того, чтобы создать новый стандартный модуль(Module), модуль класса(ClassModule) или пользовательскую форму(UserForm) надо просто в окне Проводника объектов(Project Explorer) щелкнуть правой кнопкой мыши, выбрать пункт Insert и затем тип добавляемого объекта(Module, ClassModule, UserForm). Так же добавить модуль можно и через меню: Insert -тип модуля.
      Удалить тоже просто: щелкнуть правой кнопкой мыши на нужном модуле в окне проекта и выбрать Remove. Подробнее про удаление в конце статьи этой статьи: Удаление модулей

      СТАНДАРТНЫЙ МОДУЛЬ
      на рис.1 Module1 .
      Самый распространенный тип модулей, который используется в большинстве случаев. Именно в них макрорекордер создает записываемые макросы. Все коды и процедуры в таких модулях пишутся вручную, либо копируются из других источников(другого модуля, с этого сайта и т.п.). В основном именно в стандартных модулях содержится большая часть кодов. Они предназначены для хранения основных процедур и Public переменных, которые могут быть доступны впоследствии из любого модуля. Как создать стандартный модуль: в окне проводника объектов щелкаем правой кнопкой мыши-Insert-Module. При записи макрорекордером модули создаются автоматически и им автоматически присваиваются имена.
      Многие коды, опубликованные в статьях на сайте необходимо размещать именно в стандартных модулях. Для этого достаточно создать новый стандартный модуль, скопировать текст кода с сайта и вставить.

      МОДУЛЬ ЛИСТА
      Лист1 или Sheet1 — на рис.1: Лист1(Лист1),Лист2(Лист2),Лист3(Лист3) .
      Для каждого листа книги имеется свой отдельный модуль. Попасть в модуль листа проще, чем в остальные модули. Для этого надо просто щелкнуть правой кнопкой мыши по ярлычку листа и выбрать из контекстного меню пункт Исходный текст (View Code)
      в зависимости от версии Excel этот пункт на русском может называться так же: Просмотреть код или Исходный код :

      Можно и более трудным путем пойти — через редактор VBA: Alt+F11 и в окне Проводника объектов(Project Explorer) дважды щелкнуть по объекту с именем листа или правая кнопка мыши на модуле листа -View code.
      Размещая код в модуле листа следует помнить, что при копировании или переносе данного листа в другую книгу код так же будет скопирован, т.к. является частью листа. Это и плюс и минус одновременно. Плюс в том, что разместив код в модуле листа можно использовать этот лист в качестве шаблона для распространения со своими кнопками вызова этих кодов(в том числе создания книг кодом) и весь функционал будет доступен. Минус же заключается в некоторых нюансах обращения к ячейкам(подробнее можно ознакомиться в этой статье: Как обратиться к диапазону из VBA) и необходимости размещения ВСЕХ используемых процедур в этом листе, иначе при переносе в другие книги коды могут работать с ошибками.

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

      Процедуры, события для которых уже используются, выделяются жирным шрифтом.

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

      • Activate — возникает при активации самого листа(но не возникает, если произошел переход из одной книги в другую и этот лист является там активным)
      • BeforeDoubleClick — возникает при двойном клике мыши на любой ячейке листа. Важно обращать внимание на передаваемые аргументы: Target и Cancel. Target — ссылка на ячейку, в которой было произведено действие; Cancel — отвечает за отмену режима редактирования
      • BeforeRightClick — возникает при клике правой кнопкой мыши на любой ячейке листа. Важно обращать внимание на передаваемые аргументы: Target и Cancel. Target — ссылка на ячейку, в которой было произведено действие; Cancel — отвечает за отмену показа всплывающего меню
      • Calculate — возникает при пересчете функций и формул на листе
      • Change — возникает при изменении значений ячеек на листе. Важно обращать внимание на передаваемый аргумент Target. Target — ссылка на ячейку, которая была изменена. Может отличаться от активной в момент обработки ячейки
      • Deactivate — возникает при переходе с этого листа на другой лист этой же книги
      • FollowHyperlink — возникает при переходе по гиперссылке, созданной в этом листе
      • SelectionChange — возникает при изменении адреса выделенной ячейки/области. Важно обращать внимание на передаваемый аргумент Target. Target — ссылка на диапазон ячеек, которые были выделены. Совпадает с выделенными на текущий момент ячейками

      Достаточно важный момент: если захотите познакомиться поближе с событийными процедурами, всегда обращайте внимание на переменные, которые передаются в качестве аргументов в процедуру. В большинстве случаев рекомендую использовать именно эти переменные, а не выдумывать всякие возможности для вычисления объекта, который послужил причиной возникновения события. Для события листа Worksheet_Change это переменная Target . Для примера вставьте приведенный ниже код в модуль любого листа:

      Примечание : для всех кодов, приведенных на сайте, достаточно просто открыть необходимый модуль(книги или листа) и вставить предложенный код. Корректировка может понадобиться только в случаях, когда в модуле Листа или Книги вашего файла уже имеется код в необходимой событийной процедуре.

      МОДУЛЬ КНИГИ
      ЭтаКнига или ThisWorkbook — на рис.1: ЭтаКнига .
      В модуль книги можно попасть только через проводник объектов(Project Explorer) редактора VBA — двойной щелчок по ЭтаКнига (ThisWorkbook) или правая кнопка мыши на модуле -View code. В модуле книги так же содержатся «встроенные» событийные процедуры. Так же как и для листа выбираем в списке объектов(вверху слева) Workbook . В правом окне выбора процедур, так же как и с модулем листа, будут все процедуры, доступные для объекта ЭтаКнига. Пример использования событийных процедур книги можно посмотреть в статье Как отследить событие(например выделение ячеек) в любой книге?
      Но там применяются все те же правила — главное не забывать про аргументы, доступные из этих процедур и передаваемые им самим Excel. Например, для события Workbook_BeforeClose доступен аргумент Cancel. Это можно использовать, если не хотите, чтобы книгу закрыл пользователь, не заполнив ячейку A1. Вот пример подобного кода:

      Из кода видно, что на листе «Отчет» должна быть не пустой ячейка A1(лист «Отчет» тоже должен существовать в этой книге). Но есть и еще одна вещь — какое-то Me. Это краткое обращение к объекту модуля класса, в данном случае это равнозначно обращению ThisWorkbook. И еще один пример кода для модуля ЭтаКнига, который запрещает сохранять исходную книгу, разрешая сохранить её только через пункт Сохранить как(SaveAs):

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

      МОДУЛИ ФОРМ
      UserForm — на рис.1 UserForm1 .
      Содержатся внутри Пользовательской формы(UserForm) и её объектов. В Пользовательских формах в основном все завязано именно на событийных процедурах самой формы и на элементах этой формы(Кнопки, ТекстБоксы, КомбоБоксы(выпадающие списки) и т.д.). Очень удобно использовать Пользовательские формы в своих приложениях для общения с пользователем. Т.к. через формы очень удобно отслеживать действия пользователя и можно запретить доступ к листам с данными, путем их скрытия. Создается форма так же как и модуль: в окне проводника объектов щелкаем правой кнопкой мыши-Insert-UserForm. Примеры кодов с использованием форм можно посмотреть в статьях: Каждому пользователю свой лист/диапазон, Как оставить в ячейке только цифры или только текст?

      МОДУЛЬ КЛАССА
      ClassModule — на рис.1 Class1 .
      В большинстве случаев создается специально для отслеживания событий различных объектов. Вряд ли понадобиться начинающим изучение VBA, хотя все зависит от поставленной задачи. Но обычно начинающим изучать это кажется слишком сложным. В любом случае, перед работой с модулями классов лучше научиться хоть чуть-чуть работать с обычными модулями и самостоятельно писать процедуры. Как добавить такой модуль: в окне проводника объектов щелкаем правой кнопкой мыши-Insert-Class Module. Подробнее про модули классов и работу с ними можно почитать в этой статье: Работа с модулями классов. Там описаны все основные принципы и приложен файл примера.

      УДАЛЕНИЕ МОДУЛЯ
      Действия по удалению любого из модулей одинаковы для всех типов. Для этого необходимо перейти в проект VBA нужной книги, выбрать нужный модуль, щелкнуть по нему правой кнопкой мыши и в появившемся меню выбрать Remove (Имя модуля). (Remove Module1, Remove UserForm1, Remove Class1 и т.п.). После этого появится окно с запросом «Do you want to export (имя модуля) before removing it?». Это означает, что VBA спрашивает: хотите ли Вы сохранить копию кодов модуля перед удалением? Как правило выбирать следует Нет. Но если Вы хотите сохранить текст кодов из удаляемого модуля в отдельном файле, то соглашаетесь, нажав Да. Будет предложено выбрать папку для сохранения модуля и можно даже задать ему отдельное имя.

      ПЕРЕНОС, ИМПОРТ и ЭКСПОРТ МОДУЛЯ
      Иногда нужно модуль из одной книги переместить в другую. Сделать это можно несколькими способами. Самый простой — открыть обе книги, перейти в проводник проектов -найти нужный модуль -захватить его левой кнопкой мыши и не отпуская кнопку перетащить на проект другой книги:

      Следует помнить, что так можно перенести и скопировать только стандартный модуль, модуль класса и модуль UserForm . Коды модулей листов и книги придется переносить как обычный текст: переходим в модуль ЭтаКнига (откуда хотим копировать) -копируем весь код -переходим в модуль ЭтаКнига второй книги и вставляем скопированное:

      Экспорт модуля(сохранение в отдельный файл)
      Если же надо сохранить стандартный модуль, модуль класса или модуль формы и не переносить сразу же в другую книгу, то можно экспортировать модуль. Для чего это может быть нужно? Как правило, чтобы перенести коды из дома на работу, переслать кому-то на другой ПК(пересылка файла с макросами может быть запрещена политикой безопасности компании) и т.п. Делается это просто: щелкаем на модуле правой кнопки мыши -Export file.
      У экспортируемых модулей есть разные расширения, в зависимости от типа модуля. Для стандартных модулей это .bas (Module1.bas), для модулей класса — .cls (Class1.cls). А вот для модулей форм будет создано целых два файла: UserForm1.frm и UserForm1.frx . Их важно хранить вместе — один без другого не может быть импортирован в дальнейшем в файл. В файле .frx хранится информация об визуальном отображении формы и её элементах, если можно так сказать. В файле .frm хранятся непосредственно тексты кодов для формы и служебная информация(имя и размеры формы, некоторые глобальные директивы и ссылка на файл .frx). Поэтому не рекомендуется без соответствующих навыков переименовывать эти два файла в надежде, что потом все заработает.
      Импорт модуля(перенос экспортированного ранее в новую книгу)
      Для переноса экспортированного модуля в другую книгу надо просто в проводнике объектов выделить нужный проект правой кнопкой мыши -Import module -выбрать в диалоговом окне нужный модуль.
      Экспортировать можно любой модуль, а вот импортировать — нет. Модули листов и книг хоть и экспортируются в отдельные файлы(кстати, с расширением .cls), но импортировать их не получится в том виде, как это предполагается. Они будут импортированы как новые модули класса и только. Поэтому для переноса кодов из модулей листов и книг придется использовать все равно копирование и вставку непосредственно кодов.
      И в довершение — можно переносить модули автоматически, кодами VBA: Как добавить код процедуры программно, скопировать модуль







      Информация о сайте

      Инструменты и настройки

      Excel Windows
      и
      Excel Macintosh

      Вопросы и решения

      Работа и общение

      Работа форума и сайта

      Функции листа Excel


      = Мир MS Excel/Как вставить код в модуль листа? — Мир MS Excel

      Войти через uID

      Войти через uID

      Подскажите пожалуйста как вставить код в модуль листа (куда заходить надо в Excel)

      вот код который нужно вставить:

      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Target = Format(Time, «Long Time»)
      End Sub

      Подскажите пожалуйста как вставить код в модуль листа (куда заходить надо в Excel)

      вот код который нужно вставить:

      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Target = Format(Time, «Long Time»)
      End Sub Руслан

      вот код который нужно вставить:

      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Target = Format(Time, «Long Time»)
      End Sub Автор — Руслан
      Дата добавления — 21.09.2013 в 11:22

      Читайте также:

          

      • Как обрабатывать фуд фото в фотошопе
      •   

      • Получить курс валюты 1с упп
      •   

      • Gearbest com как удалить из браузера опера
      •   

      • Как сохранить слайсы в фотошопе
      •   

      • Установка и удаление программ в windows 7 от имени администратора
  • Создание пользовательских функций в Excel

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

    Вы ищете сведения о том, как создать пользовательскую функцию JavaScript, которую можно использовать в Excel для Windows, Excel для Mac или Excel в Интернете ? В этом случае ознакомьтесь со статьей Общие сведения о функциях Excel.

    Пользовательские функции (как и макросы) записываются на языке программирования Visual Basic для приложений (VBA). Они отличаются от макросов двумя вещами. Во-первых, в них используются процедуры Function, а не Sub. Это значит, что они начинаются с оператора Function, а не Sub, и заканчиваются оператором End Function, а не End Sub. Во-вторых, они выполняют различные вычисления, а не действия. Некоторые операторы (например, предназначенные для выбора и форматирования диапазонов) исключаются из пользовательских функций. Из этой статьи вы узнаете, как создавать и применять пользовательские функции. Для создания функций и макросов используется редактор Visual Basic (VBE), который открывается в отдельном окне.

    Предположим, что ваша компания предоставляет скидку в размере 10 % клиентам, заказавшим более 100 единиц товара. Ниже мы объясним, как создать функцию для расчета такой скидки.

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

    Чтобы создать пользовательскую функцию DISCOUNT в этой книге, сделайте следующее:

    Нажмите клавиши ALT+F11 (или FN+ALT+F11 на Mac), чтобы открыть редактор Visual Basic, а затем щелкните Insert (Вставка) > Module (Модуль). В правой части редактора Visual Basic появится окно нового модуля.

    Скопируйте указанный ниже код и вставьте его в новый модуль.

    Примечание: Чтобы код было более удобно читать, можно добавлять отступы строк с помощью клавиши TAB. Отступы необязательны и не влияют на выполнение кода. Если добавить отступ, редактор Visual Basic автоматически вставит его и для следующей строки. Чтобы сдвинуть строку на один знак табуляции влево, нажмите SHIFT+TAB.

    Теперь вы готовы использовать новую функцию DISCOUNT. Закройте редактор Visual Basic, выделите ячейку G7 и введите следующий код:

    Excel вычислит 10%-ю скидку для 200 единиц по цене 47,50 ₽ и вернет 950,00 ₽.

    В первой строке кода VBA функция DISCOUNT(quantity, price) указывает, что функции DISCOUNT требуется два аргумента: quantity (количество) и price (цена). При вызове функции в ячейке листа необходимо указать эти два аргумента. В формуле =DISCOUNT(D7;E7) аргумент quantity имеет значение D7, а аргумент price — значение E7. Если скопировать формулу в ячейки G8:G13, вы получите указанные ниже результаты.

    Рассмотрим, как Excel обрабатывает эту функцию. При нажатии клавиши ВВОД Excel ищет имя DISCOUNT в текущей книге и определяет, что это пользовательская функция в модуле VBA. Имена аргументов, заключенные в скобки ( quantity и price), представляют собой заполнители для значений, на основе которых вычисляется скидка.

    Оператор If в следующем блоке кода проверяет аргумент quantity и сравнивает количество проданных товаров со значением 100:

    Если количество проданных товаров не меньше 100, VBA выполняет следующую инструкцию, которая перемножает значения quantity и price, а затем умножает результат на 0,1:

    Discount = quantity * price * 0.1

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

    Если значение quantity меньше 100, VBA выполняет следующий оператор:

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

    Discount = Application.Round(Discount, 2)

    В VBA нет функции округления, но она есть в Excel. Чтобы использовать округление в этом операторе, необходимо указать VBA, что метод (функцию) Round следует искать в объекте Application (Excel). Для этого добавьте слово Application перед словом Round. Используйте этот синтаксис каждый раз, когда нужно получить доступ к функции Excel из модуля VBA.

    Пользовательские функции должны начинаться с оператора Function и заканчиваться оператором End Function. Помимо названия функции, оператор Function обычно включает один или несколько аргументов. Однако вы можете создать функцию без аргументов. В Excel доступно несколько встроенных функций (например, СЛЧИС и ТДАТА), в которых нет аргументов.

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

    Количество ключевых слов VBA, которые можно использовать в настраиваемых функциях, меньше числа, которое можно использовать в макросах. Пользовательские функции не разрешены для выполнения каких-либо действий, кроме возвращения значения в формулу на листе или в выражение, используемое в другом макросе или функции VBA. Например, пользовательские функции не могут изменять размер окон, редактировать формулы в ячейках, а также изменять шрифт, цвет и параметры узора для текста в ячейке. Если вы включаете код «Action» этого типа в процедуру Function, функция возвращает #VALUE! Если позиция, которую вы указали, находится перед первым или после последнего элемента в поле, формула возвращает ошибку #ССЫЛКА!.

    Единственное действие, которое может выполнять процедура функции (кроме вычислений), — это отображение диалогового окна. Чтобы получить значение от пользователя, выполняющего функцию, можно использовать в ней оператор InputBox. Кроме того, с помощью оператора MsgBox можно выводить сведения для пользователей. Вы также можете использовать настраиваемые диалоговые окна ( UserForms), но эта тема выходит за рамки данной статьи.

    Даже простые макросы и пользовательские функции может быть сложно понять. Чтобы сделать эту задачу проще, добавьте комментарии с пояснениями. Для этого нужно ввести перед текстом апостроф. Например, ниже показана функция DISCOUNT с комментариями. Благодаря подобным комментариями и вам, и другим будет впоследствии проще работать с кодом VBA. Так, код будет легче понять, если потребуется внести в него изменения.

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

    Кроме того, рекомендуется присваивать макросам и пользовательским функциям описательные имена. Например, присвойте макросу название MonthLabels вместо Labels, чтобы более точно указать его назначение. Описательные имена макросов и пользовательских функций особенно полезны, если существует множество процедур с похожим назначением.

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

    Для использования настраиваемой функции необходимо открыть книгу, содержащую модуль, в котором она была создана. Если эта книга не открыта, вы получаете #NAME? Ошибка при попытке использовать функцию. Если вы ссылались на функцию в другой книге, перед именем функции необходимо указать имя книги, в которой она находится. Например, если вы создаете функцию с именем «скидка» в книге с именем «личное. xlsb» и назовите ее из другой книги, необходимо ввести = личное. xlsb! скидка (), а не просто = Скидка ().

    Чтобы вставить пользовательскую функцию быстрее (и избежать ошибок), ее можно выбрать в диалоговом окне «Вставка функции». Пользовательские функции доступны в категории «Определенные пользователем»:

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

    Создав нужные функции, выберите Файл > Сохранить как.

    В Excel 2007 нажмите кнопку Microsoft Office, а затем щелкните Сохранить как.

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

    Сохранив книгу, выберите Файл > Параметры Excel.

    В Excel 2007 нажмите кнопку Microsoft Office и щелкните Параметры Excel.

    В диалоговом окне Параметры Excel выберите категорию Надстройки.

    В раскрывающемся списке Управление выберите Надстройки Excel. Затем нажмите кнопку Перейти.

    В диалоговом окне Надстройки установите флажок рядом с именем книги, как показано ниже.

    Создав нужные функции, выберите Файл > Сохранить как.

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

    Сохранив книгу, выберите Сервис > Надстройки Excel.

    В диалоговом окне Надстройки нажмите кнопку «Обзор», найдите свою надстройку, нажмите кнопку Открыть, а затем установите флажок рядом с надстройкой в поле Доступные надстройки.

    После выполнения этих действий ваши пользовательские функции будут доступны при каждом запуске Excel. Если вы хотите добавить в библиотеку функций, вернитесь в редактор Visual Basic. Если вы видите в окне редактора проектов Visual Basic под заголовком Вбапрожект, появится модуль под именем файла надстройки. У надстройки появится расширение. xlam.

    Дважды щелкните модуль в Project Explorer, чтобы вывести код функций. Чтобы добавить новую функцию, установите точку вставки после оператора End Function, который завершает последнюю функцию в окне кода, и начните ввод. Вы можете создать любое количество функций, и они будут всегда доступны в категории «Определенные пользователем» диалогового окна Вставка функции.

    Эта статья основана на главе книги Microsoft Office Excel 2007 Inside Out, написанной Марком Доджем (Mark Dodge) и Крейгом Стинсоном (Craig Stinson). В нее были добавлены сведения, относящиеся к более поздним версиям Excel.

    Дополнительные сведения

    Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

    Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

    Insert module в excel

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

    Файл Описание Размер файла: Скачивания
    Пример 14 Кб 1844

    Файлы для скачивания:

    Рассмотрим два примера:

    1. Ищем и используем команду

    Например, нам необходима команда, которая бы вставляла в выделенные ячейки цифру «1». Запускаем поисковик, набираем поисковую фразу, получаем результаты, начинаем просматривать, находим код примерно в таком виде:

    Выделяем данный код (без нумерации строк, начиная со слова Sub) и нажимаем Ctrl+C. Переходим в свою рабочую книгу MS Excel и нажимаем сочетание клавиш Alt+F11, у вас откроется окно редактора VBA:

    В левом окне «Project — VBA Project» выбираем (щелкаем мышкой) нашу рабочую книгу, в которую необходимо вставить макрос, например, «VBAProject (Книга2)»:

    В пункте меню «Insert» выбираем «Module»:

    В левом окне «Project — VBA Project» у вас должна появиться новая папка «Modules» и в ней новый объект «Module1»:

    Переходим курсором в правое «Большое» поле для ввода и нажимаем Ctrl+V, скопированный макрос вставиться в модуль:

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

    Если вы работаете в MS Excel 2007, 2010 или 2013, вам необходимо будет сохранить вашу рабочую книгу как «Книга Excel с поддержкой макросов (.xlsm)»:

    В MS Excel 2003 достаточно будет просто сохранить файл.

    Чтобы выполнить скопированный в книгу макрос выделяем ячейки, в которые необходимо вставить «1», нажимаем в меню «Вид» кнопку «Макросы» и в выпавшем списке выбираем пункт «Макросы» или нажимаем сочетание клавиш Alt+F8:

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

    Макрос выполнится — в выделенные ячейки вставиться «1»:

    Макросы в MS Excel можно вставлять в следующие места:

    • В Модуль, обычно вставляют код макросов, запуск которых будет производится по нажатию кнопки пользователем (как, например, в нашем случае) или код функций (формул);
    • В Рабочий лист, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий пользователя или изменения данных в листе (поменялись данный, макрос выполнился);
    • В Рабочую книгу, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий, производимых над книгой (файлом). Например, макрос, который запускается при открытии или закрытии книги, или при ее сохранении;
    • Так же макросы могут быть частью пользовательской формы.

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

    Чтобы вставить код в Рабочий лист, в левом окне редактора VBA выберите соответствующий лист, щелкните по нему два раза левой кнопкой мышки, переместите курсор в правое поле ввода и вставьте код.

    Для вставки кода в Книгу, выберите «ЭтаКнига»:

    Давайте потренируемся. Вставьте код опубликованный ниже в «Лист1».

    Данный макрос выводит информационное сообщение если вы введете в любую ячейку листа «2».

    Вернитесь в рабочую книгу, перейдите в «Лист1» и введите в ячейку «А1» цифру «2» и нажмите Enter, после чего у вас должно появиться следующее сообщение:

    Если вы видите это сообщение, то вы все сделали правильно. Если нет, то вы вставили код куда-то не туда, повторите попытку.

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

    2. Ищем и используем функцию

    Находим в интернете VBA код функции, которая подсчитывает, например, количество слов в ячейке:

    Копируем код, нажимаем сочетание клавиш Alt+F11, откроется редактор VBA:

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

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

    В открывшемся окне «Вставка функции» в поле «Категория» выбираем «Определенные пользователем»

    В списке доступных функций выбираем «КолСловВЯчейке», нажимаем «ОК»:

    Вводим необходимые аргументы и нажимаем «ОК»:

    Важно:

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

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

    Это значит, что у вас проблема с кодировкой, которая наблюдается с копированием Кириллического текста из некоторых браузеров. Чтобы победить эту проблему, попробуйте вставить скопированный код в пустой лист MS Excel, как «Текст в кодировке Unicode». Для этого перейдите в книгу MS Excel, выберите или создайте пустой лист, встаньте в ячейку «A1» и нажмите сочетания клавиш Ctrl+Alt+V. Должно будет появиться меню «Специальной вставки», выберите пункт «Текст в кодировке Unicode» и нажмите «OK».

    Код должен будет вставиться в рабочий лист без знаков вопроса:

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

    Если вы не видите в редакторе VBA окна «Project — VBA Project», перейдите во вкладку меню «View» и в списке выберите пункт «Project Explorer» или нажмите сочетание клавиш Ctrl+R:

    VBA Excel. Модуль, процедура, форма

    Знакомство с понятиями модуль, процедура, форма в VBA Excel. Модули разных типов. Создание пользовательской формы. Встроенные диалоговые окна.

    Модуль

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

    Стандартный модуль

    Стандартный модуль представляет из себя отдельный файл, встроенный в рабочую книгу Excel и принадлежащий всем объектам рабочей книги, взаимодействующим с модулями (Workbook, Worksheet, UserForm). Стандартный модуль можно экспортировать, импортировать и удалять. Его публичные процедуры с уникальными именами доступны во всех остальных модулях рабочей книги без дополнительной адресации. Для публичных процедур с неуникальными именами требуется указание имени модуля, из которого они вызываются.

    Создание стандартного модуля:

    1. Откройте рабочую книгу Excel, в которую планируете добавить новый стандартный модуль, или создайте новую книгу в учебных целях.
    2. Откройте редактор VBA сочетанием клавиш Alt+F11.
    3. В окне редактора VBA нажмите на пункт меню «Insert» и в открывшемся списке выберите «Module».

    Таким образом, вы создали новый стандартный модуль. В проводнике справа появилась папка «Modules» и в ней файл «Module1» (или «Module» с другим номером, если в вашей книге модули уже были). Такие же модули создаются при записи макросов встроенным рекордером.

    Открыть или перейти в окно открытого стандартного модуля можно, дважды кликнув по его имени в проводнике, или открыв на нем правой кнопкой мыши контекстное меню и выбрав «View Code». Кроме того, все уже открытые модули доступны во вкладке «Window» главного меню.

    Важное примечание: в Excel 2007-2016 книги с программными модулями сохраняются как «Книга Excel с поддержкой макросов (.xlsm)». Если вы добавили модуль в книгу «Книга Excel (.xlsx)», то, при ее сохранении или закрытии, программа Excel предложит сохранить ее как «Книга Excel с поддержкой макросов (.xlsm)», иначе изменения (созданные или импортированные модули) не сохранятся.

    Модуль книги

    Модуль книги принадлежит только объекту Workbook (Рабочая книга). Открыть или перейти в окно открытого модуля книги можно, дважды кликнув в проводнике на пункте «ЭтаКнига», или открыв на нем правой кнопкой мыши контекстное меню и выбрав «View Code». Кроме того, открытый модуль доступен во вкладке «Window» главного меню.

    Модуль листа

    Модуль листа принадлежит только объекту Worksheet (Рабочий лист). Открыть модуль листа можно, дважды кликнув в проводнике по его имени, или открыв на нем правой кнопкой мыши контекстное меню и выбрав «View Code». Кроме того, перейти в модуль листа можно из рабочей книги, кликнув правой кнопкой мыши по ярлыку этого листа и выбрав в контекстном меню «Просмотреть код». Открытый модуль доступен во вкладке «Window» главного меню.

    Модуль формы

    Модуль формы принадлежит только объекту UserForm (Пользовательская форма). Откройте редактор VBA сочетанием клавиш Alt+F11 и нажмите на пункт меню «Insert». В открывшемся списке выберите «UserForm». Таким образом вы создадите новую пользовательскую форму «UserForm1». В проводнике справа появилась папка «Forms» и в ней файл «UserForm1». Перейти в модуль формы можно, дважды кликнув по самой форме, или кликнув по имени формы в проводнике правой кнопкой мыши и выбрав в контекстном меню «View Code». Кроме того, открытый модуль доступен во вкладке «Window» главного меню.

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

    Между открытыми окнами форм и модулей можно переходить, нажав в главном меню вкладку «Window», где перечислены все открытые модули и формы (активный объект отмечен галочкой).

    Процедура

    Процедуры в VBA Excel подразделяются на 3 типа:

    • Sub (подпрограмма),
    • Function (функция),
    • Property (пользовательские свойства).

    Главное отличие функции от подпрограммы заключается в том, что функция возвращает результат вычислений, а подпрограмма – нет. Процедура Property предназначена для создания пользовательских свойств и управления ими (используется не часто).

    В редакторе VBA Excel перейдите в стандартный модуль и нажмите на пункт меню «Insert». В открывшемся списке выберите «Procedure…». Появится окно с предложением ввести название процедуры, выбрать тип и зону видимости. Создайте пару процедур с разной зоной видимости, пусть одна будет Sub, а другая – Function. В промежутке между началом и концом процедуры пишется программный код.

    Как в Excel 2010 или 2013 вставить и запустить код VBA – руководство для начинающих

    Это краткое пошаговое руководство предназначено для начинающих пользователей и рассказывает о том, как вставлять код VBA (Visual Basic for Applications) в книгу Excel, и как запускать вставленный макрос для выполнения различных задач на этом листе.

    Большинство пользователей не являются гуру Microsoft Office. Они могут не знать всех тонкостей работы той или иной функции, и не смогут ответить на вопрос, как отличается скорость выполнения макроса VBA в Excel 2010 и 2013. Многие просто используют Excel, как инструмент для обработки данных.

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

    Вставляем код VBA в книгу Excel

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

      1. Открываем рабочую книгу в Excel.
      2. Нажатием Alt+F11 вызываем окно редактора Visual Basic
      3. На панели Project-VBAProject кликаем правой кнопкой мыши по имени рабочей книги (в левой верхней части окна редактора) и в контекстном меню выбираем Insert >Module.
      4. Копируем код VBA (с веб-страницы или из другого источника) и вставляем его в правую область редактора VBA (окно Module1).Подсказка: Как увеличить скорость выполнения макроса?

      В самом начале кода Вашего макроса VBA должны содержаться строки:

      Application.ScreenUpdating = False
      Application.Calculation = xlCalculationManual

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

        В самое начало кода после всех строк, начинающихся с Dim (если строк, начинающихся с Dim нет, то вставляем сразу после строки Sub):

      Application.ScreenUpdating = False
      Application.Calculation = xlCalculationManual
      В самый конец кода, перед End Sub:

      Application.ScreenUpdating = True
      Application.Calculation = xlCalculationAutomatic

      Эти строки, как можно понять из их содержания, отключают обновление экрана и пересчёт формул рабочей книги перед выполнением макроса. После выполнения кода эти параметры снова включаются. Данный приём приводит к ускорению выполнения макроса от 10% до 500% (да, макрос может работать в 5 раз быстрее, если манипуляции над ячейками происходят без лишних остановок).

    1. Сохраняем рабочую книгу, как книгу Excel с поддержкой макросов. Для этого нажмите Ctrl+S и в окне с предупреждением Следующие компоненты невозможно сохранить в книге без поддержки макросов (The following features cannot be saved in macro-free workbook) нажмите Нет (No).Откроется диалоговое окно Сохранение документа (Save as). В выпадающем списке Тип файла (Save as type) выбираем Книга Excel с поддержкой макросов (Excel macro-enabled workbook) и нажимаем кнопку Сохранить (Save).

    1. Нажимаем Alt+Q, чтобы закрыть окно редактора VBA и вернуться к книге Excel.

    Запускаем макрос VBA в Excel

    Чтобы запустить только что добавленный макрос, нажмите Alt+F8. Откроется диалоговое окно Макрос (Macro). В списке Имя макроса (Macro name) выберите нужный макрос и нажмите кнопку Выполнить (Run).

    Понравилась статья? Поделить с друзьями:

    А вот еще интересные статьи:

  • Встроенный графический редактор называется paint word winrar
  • Встроенные макросы в word
  • Встроенный графический редактор изображений в microsoft office word позволяет
  • Встроенные логические функции в excel 9 класс
  • Встроенный графический редактор в word это векторный редактор или растровый

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии