Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

Создать программу в excel

Для начала давайте напишем какую-нибудь совсем отвлеченную программку в макросах, используя автоматическую запись. Предположим. нам необходимо в одной из ячеек первого листа написать предложение «Это первый лист», на втором листе — «Это уже второй лист» и на третьем — «А это третий лист». Затем, вернувшись на первый, снова написать:»Все! Работа сделана!»

Для этого, запустив Excel, выберите режим работы с подключенными макросами, щелкните правой кнопкой мыши по кнопке СЕРВИС и установите галочку напротив надписи Visual Basic. У вас должно получиться что-то похожее на нижний рисунок. Сохраните свою работу под именем, скажем, s1 или задача 1.

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

Давайте для начала научимся создавать и программировать кнопку.

Как создать программу в «Excel»

Один из наиболее часто задаваемых вопросов задаваемых начинающими пользователями звучит так: «Как создать программу в «Excel» и возможно ли это сделать в принципе?»

Создать полноценную программу или продвинутую игру инструментами «Эксель» практически невозможно.

С другой стороны «Excel» обладает достаточным набором инструментов (активные элементы Activx, ViBA и т.д.), позволяющими создавать достаточно функциональные приложения внутри самих экселевских документах — макросы.

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

Опытные программисты при помощи макросов написанных на языке VBA даже создают примитивные игры популярные в начале 90-х прошлого столетия: тетрис, змейка, пинг-понг и т.д.

Рассмотрим азы создания программ в VBA Excel.

Второй этапподготовка программы «Excel» к написанию макросов: включить макросы, отобразить панель разработчика и т.д.
Подробно подготовка к написанию простого макроса описана в статье:

Как написать простой макрос в программе Excel

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

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

Некоторые варианты кодов макросов опубликованы на нашем сайте в разделе Макросы и VBA.

Создать программу в excel

Для начала давайте напишем какую-нибудь совсем отвлеченную программку в макросах, используя автоматическую запись. Предположим. нам необходимо в одной из ячеек первого листа написать предложение «Это первый лист», на втором листе — «Это уже второй лист» и на третьем — «А это третий лист». Затем, вернувшись на первый, снова написать:»Все! Работа сделана!»

Для этого, запустив Excel, выберите режим работы с подключенными макросами, щелкните правой кнопкой мыши по кнопке СЕРВИС и установите галочку напротив надписи Visual Basic. У вас должно получиться что-то похожее на нижний рисунок. Сохраните свою работу под именем, скажем, s1 или задача 1.

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

Давайте для начала научимся создавать и программировать кнопку.

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

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

Предложенную задачу можно представит как объединение 4 задач:

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

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

3. Построение диаграмм и графиков по полученным расчетным данным в таблицах.

4. Создание пользовательского интерфейса (Меню), позволяющего объединить все решенные задачи (с применением макросов).

Существует достаточно простая возможность создания программы (макроса) на языке VBA с использованием MacroRecorder.

MacroRecorder – это транслятор, который переводит все действия пользователя с момента запуска MacroRecorder до окончания записи макроса на язык VBA.

Макрос – это имеющая имя последовательность заданных пользователем команд, хранящаяся в форме программы на языке VBA.

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

2. С помощью коллекции WordArt подготовьте на созданном листе “Меню” надписи “Меню” и “4 задания”.

3. Вызовите на экран дополнительную панель “Рисование”.

4. Используя элемент “Автофигура” нарисуйте на листе одну кнопку (всего кнопок будет 4).

5. Используя контекстно-зависимое меню этого объекта, добавьте надпись на кнопке “Турагенство”.

6. Измените, дизайн кнопки, т.е. поменяйте фон кнопки, а также начертание, название шрифта и размер букв надписи на кнопке.

Рис. 1. Так выглядит пользовательский интерфейс “4 задания”

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

2. Активизируем MacroRecoder с помощью команды Сервис-Макрос-Начать запись.
Появится диалоговое окно “Запись макроса”. Это диалоговое окно позволяет задать параметры макроса.

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

Остановите запись макроса, нажав на кнопку “Остановить запись”.

3. Просмотрите записанную программу. Для этого выполните команду Сервис-Макрос-Макросы. Созданная программа записалась в Модуле1.

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

Таким образом, MacroRecorder записал нужную нам программу из одной строки:
Sheets(“Турагенство”).Select – выбрать лист “Турагенство”.

1. Для того чтобы эта программа выполнялась, то есть, происходил переход на лист “Турагенство” при нажатии на одноименную кнопку, выполните следующие действия:

l закройте окно редактора VBA;
l на листе “Меню” вызовите контекстно-зависимое меню на автофигуре с надписью “Турагенство”

Рис. 4. Контекстно-зависимое меню автофигуры “Турагенство”

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

l в появившемся меню выберите команду “Назначить макрос
l в окне “Назначить макрос объекту” выберите имя макрос “Турагенство” и подтвердите выполнение операции, нажав на кнопку ОК.
l снимите выделение с кнопки и проверьте ее работоспособность, щелкнув по ней.

2. Создайте и оживите оставшиеся кнопки пользовательского интерфейса.

Сформируйте и заполните накопительную ведомость по продаже путевок туристической фирмой «Пять континентов» за май 2003 г.

Фирма имеет семь постоянных маршрутов. Цена каждого маршрута и количество проданных путевок представлены в таблице. Если количество проданных путевок в месяц по каждому из маршрутов более 50, то путевки, проданные сверх этих пятидесяти, реализуются со скидкой в 15% от указанной цены.

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

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

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

1. Круговую диаграмму по графе «Количество проданных путевок».

1. Процент скидки (15%) и пограничное количество путевок (50) вынесите в отдельные ячейки с комментариями.

2. При расчете количества путевок, проданных со скидкой, используйте логическую функцию ЕСЛИ.

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

4. На листе “Турагенство” создайте кнопку для перехода на лист “Меню”.

5. Создайте копию листа “Турагенство”. Переименуйте лист в “Формулы” и выведите в созданной таблице формулы расчета.

Образец выполненной работы представлен на рис. 5. Работу выполнила ученица Ломоносовской школы 10 класса “В” Дубровская Ксения.

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

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

2. Таблицу с формулами (рис.6). Уметь объяснить работу формулы ЕСЛИ и применение абсолютной адресации в формулах.

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

3. Показать текст макросов в редакторе VBA, созданных при нахождении статистических показателей.

Sub Средняя_цена()
Range(«C14»).Select
ActiveCell.FormulaR1C1 = «=AVERAGE(R[-11]C[3]:R[-5]C[3])»
End Sub

Sub Максимум ()
Range(«A14»).Select
ActiveCell.FormulaR1C1 = «=MAX(R[-11]C[4]:R[-5]C[4])»
End Sub

Sub Минимум()
Range(«B14»).Select
ActiveCell.FormulaR1C1 = «=MIN(R[-11]C:R[-5]C)»
End Sub

Sub Очистка()
Range(«A14:C14»).Select
Selection.ClearContents
End Sub

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

l реализация книг издательствами холдинга «Спутник» по кварталам за 2003 год и т.д.;

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

Темой для проекта можно выбрать создание информационной системы “Торгово-закупочное предприятие”, в котором применение макросов необходимо, также как и написание программ на языке VBA. На рис.7 показан пользовательский интерфейс для названного проекта.

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

Продажа путевок туристической фирмой «Пять континентов» за декабрь 2003г.

Фриланс проекты › Написание программы для обработки файлов *.xlsx Написание программы для обработки файлов *.xlsx

— структура файлов одинаковая: используется только первый лист, количество, наименование и расположение столбцов однотипное, в строках – текстово-цифровые символы (информация для обработки)

— количество столбцов – 30, количество строк – до 500 000.

1. создать новый файл с расширением *xlsx и скопировать в него первую строку (шапку) с указанного файла (один из файлов, в которых будет осуществлен поиск по критерию).

2. выбрать папку и файлы, в которых будет осуществлен поиск;

3. иметь возможность задать поиск по критерию/ям в определенном столбце:

— выбрать наименование столбца/ов, в котором будет осуществляться поиск элемента (пример, наименование или код товара);

— задать условие поиска «содержит» и/или «начинается на», …. (аналогично поисковому функционалу Excel);

4. найти в данном столбце все ячейки с удовлетворяющими критериями поиска;

5. строки (в которой находится найденная ячейка) скопировать целиком и отобразить ее в новом файле *xlsx (желательно, это делать сразу, а не накапливать в памяти);

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

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

П.С.: все операции, указанные выше можно осуществить в Excel, однако нужно проделывать все поисковые операции с 20-30 файлами поочередно. и накоплением в отдельном файле – что очень утомляет . Нужна программа, которая все это сделает во всех файлах и выдаст результат в новом файле.

эксперт
Мнение эксперта
Михаил Соловьев, консультант по вопросам работы с продуктами Microsoft
Если у вас возникнут сложности, я помогу разобраться!
Задать вопрос эксперту
Для простоты в полe Имя макроса оставляют Макрос1 , а в полe Сочeтаниe клавиш вставляют, напримeр, hh это значит, что запустить программку можно будeт блиц-командой Ctrl h. Если же вы хотите что-то уточнить, обращайтесь ко мне!
В свою очередь объекты имеют «коллекции». Коллекция — это группа объектов одинакового класса. Отдельные элеметы коллекции являются также объектами. Так, объекты Worksheets являются элементами коллекции объекта Worksheet, который содержит также и другие коллекции и объекты:
Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

Excel примеры vba — все про Ексель

Для начала давайте напишем какую-нибудь совсем отвлеченную программку в макросах, используя автоматическую запись. Предположим. нам необходимо в одной из ячеек первого листа написать предложение «Это первый лист», на втором листе — «Это уже второй лист» и на третьем — «А это третий лист». Затем, вернувшись на первый, снова написать:»Все! Работа сделана!»

VBA Excel. Начинаем программировать с нуля

Эта статья предназначена для тех, кто желает научиться программировать в VBA Excel с нуля. Вы увидите, как это работает, и убедитесь, что не все так сложно, как кажется с первого взгляда. Свою первую программу вы напишите за 7 простых шагов.

Знакомство с редактором VBA

  1. Создайте новую книгу Excel и сохраните ее как книгу с поддержкой макросов с расширением .xlsm. В старых версиях Excel по 2003 год – как обычную книгу с расширением .xls.
  2. Нажмите сочетание клавиш «Левая_клавиша_Alt+F11», которое откроет редактор VBA. С правой клавишей Alt такой фокус не пройдет. Также, в редактор VBA можно перейти по ссылке «Visual Basic» из панели инструментов «Разработчик» на ленте быстрого доступа. Если вкладки «Разработчик» на ленте нет, ее следует добавить в настройках параметров Excel.

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

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

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

После нажатия кнопки «Module» вы увидите ссылку на него, появившуюся в проводнике слева.

Первая программа на VBA Excel

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

  1. Откройте стандартный модуль двойным кликом по его ссылке в проводнике. Поместите в него курсор и нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

В результате откроется окно добавления шаблона процедуры (Sub).

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

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

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».

  1. Проверьте, что курсор находится внутри процедуры, и запустите ее, нажав клавишу «F5». А также, запустить процедуру на выполнение можно, нажав на треугольник (на изображении под пунктом меню «Debug») или на кнопку «Run Sub/UserForm» во вкладке «Run» главного меню редактора VBA Excel.

Как Сделать Калькулятор в Excel Visual Basic • Создание шаблона

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

Работа с переменными

Чтобы использовать в процедуре переменные, их необходимо объявить с помощью ключевого слова «Dim». Если при объявлении переменных не указать типы данных, они смогут принимать любые доступные в VBA Excel значения. Комментарии в тексте процедур начинаются со знака «’» (апостроф).

Создать программу в excel - все про Ексель
Второй этапподготовка программы «Excel» к написанию макросов: включить макросы, отобразить панель разработчика и т.д.
Подробно подготовка к написанию простого макроса описана в статье:
эксперт
Мнение эксперта
Михаил Соловьев, консультант по вопросам работы с продуктами Microsoft
Если у вас возникнут сложности, я помогу разобраться!
Задать вопрос эксперту
Опытные программисты при помощи макросов написанных на языке VBA даже создают примитивные игры популярные в начале 90-х прошлого столетия тетрис, змейка, пинг-понг и т. Если же вы хотите что-то уточнить, обращайтесь ко мне!
Имeнно с этими понятиями нужно разобраться тeм, кто собираeтся работать в срeдe VBA. Прeждe всeго нeобходимо понять, что такоe объeкт. В Excel в этом качeствe выступают лист, книга, ячeйка и диапазон. Данныe объeкты обладают спeциальной иeрархиeй, т.e. подчиняются друг другу.

Написание простейшего макроса в Excel. Самоучитель. Как записать макрос в Excel? Пошаговая инструкция.

  1. Создайте новую книгу Excel и сохраните ее как книгу с поддержкой макросов с расширением .xlsm. В старых версиях Excel по 2003 год – как обычную книгу с расширением .xls.
  2. Нажмите сочетание клавиш «Левая_клавиша_Alt+F11», которое откроет редактор VBA. С правой клавишей Alt такой фокус не пройдет. Также, в редактор VBA можно перейти по ссылке «Visual Basic» из панели инструментов «Разработчик» на ленте быстрого доступа. Если вкладки «Разработчик» на ленте нет, ее следует добавить в настройках параметров Excel.

Как вы уже могли заметить, программировать в самом известном табличном процессоре Microsoft не так уж сложно. Особенно, если научиться применять функции VBA. Всего в этом языке программирования, созданном специально для написания приложений в «Эксель» и Word, около 160 функций. Их можно разделить на несколько больших групп. Это:

VBA Excel. Содержание рубрики

Здравствуйте! У Вас нет темы по работе с фильтром. Можно проконсультироваться на этот счёт?

Здравствуйте, Сергей!
Задавайте вопрос, постараюсь ответить.

Спасибо, Евгений! Имеется в Excel столбец с включённым автофильтром. Можно ли программно запустить окно фильтра для выбора значений? Т.е. не руками нажимать на иконку фильтра, а заставить окно открываться с помощью макроса. Спасибо за ответ.

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

Просто отследить, какая кнопка нажата.
По предыдущему вопросу. Я вставил sendkeys… в конец макроса, который запускается при нажатии кнопки на листе. Окно фильтра появляется и тут же закрывается. А как сделать, чтобы окно осталось, и пользователь мог выбрать данные?

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

Пример отслеживания нажатий кнопки «OK» автофильтра. На нажатие кнопки «Отмена» код не реагирует.

Вставьте в стандартный модуль (в примере — Module1) объявление глобальной переменной и код процедуры для кнопки:

Range(«A1»).CurrentRegion можно заменить на имя таблицы.

Евгений, а формулу в поле B2 оставлять или её можно удалить?

Можно удалить, если в таблице есть другие формулы. Я изменил код процедуры Worksheet_Calculate() в предыдущем примере, чтобы она не реагировала на изменение формул, а только на нажатие кнопки «OK» автофильтра. Range(«A1») — это ячейка с кнопкой фильтра.

Евгений, спасибо за корректировку процедуры. Думаю, в ней и поле myString1 необязательно (и связанная проверка с ним), т.к. пользователь может выбрать все значения.
Но… после команды SendKeys «%» событие Worksheet_Calculate() отрабатывается только один раз :(.

Сергей, событие Worksheet_Calculate() не зависит от команды SendKeys «%» . Ограничение стоит здесь:

Код в процедуре Worksheet_Calculate() срабатывает только когда активна ячейка Range(«A1») . Если заменить в этой строке Range(«A1») на диапазон строки заголовков таблицы, тогда код будет срабатывать при любой активной ячейке в заголовке.

В переменную myString записывается состояние таблицы до применения фильтра, в переменную myString1 — после применения. Затем их содержимое сравнивается: если они содержат разные значения — значит, фильтр был применен.

Здравствуйте! может я не туда пишу. вопрос
нужно посчитать кол-во строк в столбце «В» (от 100 до 5000) и вставить в формулу вместо 744
table = Range(«B2:C744»)
спасибо.

В столбце «B» не должно быть пустых ячеек до последней строки таблицы.

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

Добрый день! Никак не могу решить проблему с заблокированным автофильтром на защищенном макросом (нашел на форумах) листе. Подскажите пожалуйста, куда и какую строчку нужно добавить в макрос, чтобы при открытии файла был активен автофильтр:

Здравствуйте, Рафия!
С разработкой кредитного калькулятора вам помогут только за плату на бирже фриланса.

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

Здравствуйте, Ева! Для перемещения фокуса в ячейку справа код VBA не нужен: используйте для этого клавишу «Tab» или настройте клавишу «Enter» для перехода вправо (Файл >> Параметры >> Дополнительно).

Спасибо за ответ! Да, но это надо делать вручную; речь идёт об автоматическом перемещении курсора.

VBA Excel. Начинаем программировать с нуля
При этом, процесс обработки файлов должен быть осуществлен с минимальными загрузками памяти и быстрой обработкой файлов. (проблема предыдущего заказа – долго обрабатывал файлы с подвисанием системы из-за недостатка памяти, хотя в наличии 12 ГБ оперативки).
эксперт
Мнение эксперта
Михаил Соловьев, консультант по вопросам работы с продуктами Microsoft
Если у вас возникнут сложности, я помогу разобраться!
Задать вопрос эксперту
Подведите итог за месяц по всем графам таблицы количество проданных путевок фирмой за месяц, стоимость всех проданных путевок без учета скидки, общая сумма скидки, итоговая выручка за месяц по туристической фирме. Если же вы хотите что-то уточнить, обращайтесь ко мне!
Просто отследить, какая кнопка нажата.
По предыдущему вопросу. Я вставил sendkeys… в конец макроса, который запускается при нажатии кнопки на листе. Окно фильтра появляется и тут же закрывается. А как сделать, чтобы окно осталось, и пользователь мог выбрать данные?

VBA Excel. Содержание рубрики

Главным из них является Application, соответствующий самой программе Excel. Затем следуют Workbooks, Worksheets, а также Range. Например, для обращения к ячейке A1 на конкретном листе следует указать путь с учетом иерархии.

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector