Утилиты программ в excel

  • Надстройка FillDocuments для MS Excel: общие сведения

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

  • Структура программы «Парсер сайтов»

    Надстройка Parser для Excel — простое и удобное решение для парсинга любых сайтов (интернет-магазинов, соцсетей, площадок объявлений) с выводом данных в таблицу Excel (формата XLS* или CSV), а также скачивания файлов.
    Особенность программы — очень гибкая настройка постобработки полученных данных (множество текстовых функций, всевозможные фильтры, перекодировки, работа с переменными,…

  • Надстройка PastePictures для MS Excel: общие сведения

    Предназначение программы: вставка изображений в таблицу Excel, поиск картинок в папке или в Google, экспорт картинок из таблицы в папку.
    Основные функции программы:

    вставка фото из папки (поиск по имени файла)
    вставка картинок по ссылкам из таблицы
    поиск изображений в гугл по данным с листа Excel
    экспорт изображений с листа в файлы…

  • Логотип надстройки Unification

    Программа «Прайс лист», выполненная в виде надстройки для Excel, позволяет легко автоматизировать обработку прайс-листов.
    Вспомните ситуацию: поставщики в очередной раз прислали свои прайс-листы в Excel — конечно, в совершенно разных форматах — и вам нужно объединить данные из всех этих файлов в одну таблицу. А составители этих таблиц будто специально хотели усложнить вам жизнь…

  • Сравнение столбцов в Excel, и подстановка значений в таблицу

    Программа предназначена для сравнения и подстановки значений в таблицах Excel.
    Если вам надо сравнить 2 таблицы (по одному столбцу, или по нескольким),
    и для совпадающих строк скопировать значения выбранных столбцов из одной таблицы в другую,
    надстройка «Lookup» поможет сделать это нажатием одной кнопки.
     
    То же самое можно сделать при помощи формулы =ВПР(), но:

    формулы…

  • Скриншот программы создания этикеток, наклеек, ценников и квитанций


    Программа предназначена для создания и печати этикеток, наклеек, ценников и квитанций на основании данных в таблице Excel.

    При помощи этой программы вы можете:

    распечатать ценники на товар, взяв данные из прайс-листа

    сформировать этикетки и наклейки для заданных строк вашей таблицы

    подготовить квитанции для оплаты услуг ЖКХ (счета за водоснабжение, канализацию, электроэнергию)…

  • Ввод штрих кодов со сканера в Excel


    Программа предназначена для облегчения ввода данных со сканера штрих-кодов в таблицу Excel.
     

    Вы нажимаете кнопку на сканере, — в таблице Excel автоматически находится считанный штрих-код,
    и в этой строке количество товара увеличивается на единицу.
     

    Особенности программы:

    2 режима фиксации ввода штрих-кода: по фиксированной длине, и по завершающему символу

    возможность…

  • Форма для выбора создаваемых полей, и настройки их параметров


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

  • Скриншот программы формирования договоров купли-продажи


    Программа предназначена для формирования (заполнения) договоров купли-продажи.
     
    Исходными данными выступает таблица сделок, и шаблон договора, в который при помощи формул подставляются значения из заданной строки таблицы сделок.
    Для запуска программы достаточно нажать зеленую кнопку — и сразу же начнётся формирование договоров (файлов Excel из одного листа) в автоматически созданной папке…

  • Скриншот надстройки автоподбора высоты ячеек

    Надстройка для автоподбора высоты строк в Excel.
    Если Вам приходилось когда-нибудь иметь дело с бланками в Excel или просто таблицами, содержащими кучу объединенных ячеек, думаю, Вы сталкивались с проблемой подбора их высоты.
    Ну не умеет этого Excel, и все тут! С обычными ячейками справляется, а объединенные не по зубам!
    А ведь мы так привыкли давить на кнопку, и получать готовый результат…
    Что…

  • Скриншот надстройки поиска по всем листам Excel


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

    В Excel 2007 и 2010 панель инструментов можно найти на вкладке «Надстройки»:

    Надстройка SearchText является расширенной версией надстройки для…

  • Скриншот программы сравнения прайс-листов Excel


    Программа предназначена для сравнения цен конкурентов из их прайсов с прайс-листом вашей организации.

    ВНИМАНИЕ: Недавно разработана многофункциональная программа для обработки прайс-листов

    Новая программа объединения и обработки прайс-листов доступна на сайте для скачивания и тестирования на различных наборах прайс-листов.

    Исходными данными для программы являются:

    ваш прайс…

  • Поиск координат по адресам в Google Maps

    Программа позволяет загрузить координаты для списка адресов в таблице Excel
    Исходными данными выступает столбец с адресами объектов (город, улица, номер дома)
    Программа выполняет запрос к сервису geocode через Google API,
    и получает информацию об объекте в формате XML
    (полный адрес с индексом, правильное название района, города и улицы, координаты объекта — широту и долготу),
    и…

  • Шаблон договора в Word, заполняемого макросом из Excel

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

    таблица Excel с реквизитами создаваемых документов
    папка с шаблонами договоров (в формате dot)

    В исходной таблице Excel занесены все необходимые исходные данные для заполнения бланков договоров, а также, при помощи пользовательских формул (UDF),…

  • Скриншот примера использования надстройки мат.анализа в Excel для интегрирования табличной функции

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

    интерполировать табличные данные;
    находить корни уравнения;
    вычислять производные;
    численно интегрировать;
    аппроксимировать экспериментальные данные

     

    Внимание: 21 марта 2020 года выложена новая версия надстройки.

    Во вложении к статье — надстройка…

  • Скриншот листа с секундомерами


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

    Особенности программы:

    изменяемое количество участников — от 1 до 20

    изменяемое количество кругов (…

  • Главное меню программы по работе с базой данных «Преподаватели»


    База данных «Преподаватели» предназначена для автоматизации работы администрации учебных заведений.

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

    Эта база данных представляюет собой урезанную и немного изменённую версию программы АИСС СПК.

    Программа обеспечивает:

    Хранение полной…

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


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

    Надстройка SearchExcel является упрощённой версией надстройки для поиска на всех листах книги Excel
    Смотрите также надстройку для…

  • Программа для загрузки цен с Яндекс.Маркета


    Программа предназначена для поиска минимальных цен на товары в Яндекс.Маркете
    UPDATE: Продажа программы прекращена 14 мая 2015 года, ввиду нерентабельности техподдержки
    (это единственная из моих программ, где я не могу гарантировать работоспособность, — т.к. всё зависит от Яндекса, который часто меняет сайт, и вводит ограничения типа капчи).
    Техподдержка программы тоже прекращена в полном…

  • Создание списка файлов из папки со значениями ячеек из этих файлов

    Макрос FilenamesWithValues предназначен для получения списка файлов Excel из заданной папки, и загрузки значений из каждого найденного файла.
    В отдельной ячейке задаётся путь к папке, которая будет просмотрена в поисках файлов Excel.
    При формировании списка файлов проставляются гиперссылки на найденные файлы, указывается дата создания файла.
    Из каждого файла загружаются значения с…

Перейти к содержимому

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

Ответ на него не так прост.

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

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

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

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

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

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

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

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

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

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Еще…Меньше

Надстройки расширяют диапазон команд и возможностей Microsoft Excel. По умолчанию они доступны не сразу, поэтому сначала их необходимо установить и (в некоторых случаях) активировать.

Ищете сведения о Office на основе HTML, CSS и JS? Если да, см. статью Office надстройки для Excel.

Некоторые надстройки, такие как «Пакет анализа» и «Поиск решения», встроены в Excel. Другие доступны в Центре загрузки, и их необходимо предварительно скачать и установить. Кроме того, некоторые надстройки создаются сторонними организациями, например поставщиками программных решений или программистами. Это могут быть надстройки модели COM, надстройки Visual Basic для приложений (VBA) и надстройки DLL. Они также требуют установки.

Большинство надстроек можно разделить на три типа, описанных ниже.

  • Надстройки Excel.    Обычно к этому типу относят файлы надстроек Excel (XLAM), Excel 97–2003 (XLA) и надстроек DLL (XLL), а также надстройки автоматизации. Некоторые надстройки Excel, такие как «Пакет анализа» и «Поиск решения», становятся доступны после установки Microsoft Office или Excel. Для использования этих надстроек в большинстве случаев нужно лишь активировать их.

  • Скачиваемые надстройки.    Дополнительные надстройки для Excel можно скачать и установить со страницы Загрузки на сайте Office.com.

  • Пользовательские надстройки.    Многие разработчики и поставщики решений создают пользовательские надстройки модели COM, надстройки автоматизации, VBA и XLL. Они требуют установки.

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

  • Вкладка Данные. После установки и активации надстроек «Пакет анализа» и «Поиск решения» в группе Анализ становятся доступны команды Анализ данных и Поиск решения.

    Кнопка «Анализ данных» в группе «Анализ»

  • Вкладка Формулы. После установки и активации инструментов для евро в группе Решения становятся доступны команды Пересчет в евро и Формат евро.

    "Пересчет в евро" и "Формат евро"

  • Вкладка Надстройки. Другие надстройки можно добавить на вкладку Надстройки. Эта вкладка добавляется на ленту после установки и активации первой надстройки, которая должна отображаться на ней. Если вы не видите вкладку Надстройки, зайдите и перезапустите Excel.

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

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

Активация надстройки Excel    

  1. На вкладке Файл выберите команду Параметры, а затем — категорию Надстройки.

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

    Откроется диалоговое окно Надстройки.

  3. В поле Доступные надстройки установите флажок той надстройки, которую необходимо активировать, а затем нажмите кнопку ОК .

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

Установка надстройки Excel    

  • Чтобы установить надстройку, которая обычно устанавливается вместе с Excel, например «Пакет анализа» или «Поиск решения», запустите программу установки Excel или Microsoft Office и выберите вариант Изменить, а затем выберите требуемую надстройку. После перезапуска Excel она должна появиться в поле Доступные надстройки.

  • Некоторые надстройки Excel хранятся на компьютере. Чтобы установить или активировать их, нажмите кнопку Обзор (в диалоговом окне Надстройки), найдите надстройку, а затем нажмите кнопку ОК.

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

  • Другие надстройки, отсутствующие на компьютере, можно скачать и установить с помощью веб-браузера со страницы Загрузки или с других сайтов в Интернете или на сервере организации. Чтобы скачать их, следуйте инструкциям по установке.

Отключение надстройки Excel    

  1. На вкладке Файл выберите команду Параметры, а затем — категорию Надстройки.

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

  3. В поле Доступные надстройки снимите флажок той надстройки, которую нужно деактивировать, а затем нажмите кнопку ОК .

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

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

Удаление надстройки Excel    

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

  1. Откройте вкладку Файл и выберите пункт Выход.

  2. Выберите в панели управления пункт Программы и компоненты (для Windows 7 и Windows Vista) или Установка и удаление программ (для Windows XP).

  3. Выполните одно из указанных ниже действий.

    • Если приложение Excel было установлено в составе пакета Microsoft Office, в списке установленных программ выберите пункт Microsoft Office, а затем нажмите кнопку Заменить.

    • Если приложение Excel было установлено отдельно, в списке установленных программ выберите название программы, а затем нажмите кнопку Заменить.

    • Если вы установили надстройку из Центра загрузки, выберите имя программы в списке установленных и нажмите кнопку Удалить.

  4. Следуйте инструкциям программы установки.

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

Добавление надстройки COM

  1. На вкладке Файл выберите команду Параметры, а затем — категорию Надстройки.

  2. В списке Управление нажмите Надстройки COM, а затем — Перейти.

    Откроется диалоговое окно Надстройки COM.

  3. В поле Доступные надстройки установите флажок для той надстройки, которую необходимо установить, и нажмите кнопку ОК.

    Совет    Если нужная надстройка отсутствует в поле Список надстроек, нажмите кнопку Добавить, а затем найдите надстройку.

Удаление надстройки COM

  1. На вкладке Файл выберите команду Параметры, а затем — категорию Надстройки.

  2. В списке Управление нажмите Надстройки COM, а затем — Перейти.

    Откроется диалоговое окно Надстройки COM.

  3. В поле Список надстроек снимите флажок той надстройки, которую нужно удалить, а затем нажмите кнопку ОК .

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

  4. Чтобы удалить надстройку COM из списка доступных надстроек и с компьютера, щелкните ее имя в поле Список надстроек, а затем нажмите кнопку Удалить.

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

  1. На вкладке Файл выберите команду Параметры, а затем — категорию Надстройки.

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

    Откроется диалоговое окно Надстройки.

  3. Чтобы установить надстройку автоматизации, в поле Доступные серверы автоматизации выберите пункт Автоматизация и щелкните нужную надстройку.

    Совет    Если нужной надстройки нет в списке, нажмите кнопку Обзор , найдите нужную надстройку, а затем нажмите кнопку ОК .

  4. Чтобы удалить надстройку автоматизации, ее нужно удалить из реестра. За дополнительными сведениями обратитесь к системному администратору.

Некоторые надстройки, такие как «Пакет анализа» и «Поиск решения», встроены в Excel. Другие доступны в Центре загрузки, и их необходимо предварительно скачать и установить. Кроме того, некоторые надстройки создаются сторонними организациями, например поставщиками программных решений или программистами. Это могут быть надстройки модели COM, надстройки Visual Basic для приложений (VBA) и надстройки DLL. Они также требуют установки.

Большинство надстроек можно разделить на три типа, описанных ниже.

  • Надстройки Excel.    Обычно к этому типу относят файлы надстроек Excel (XLAM), Excel 97–2003 (XLA) и надстроек DLL (XLL), а также надстройки автоматизации. Некоторые надстройки Excel, такие как «Пакет анализа» и «Поиск решения», становятся доступны после установки Microsoft Office или Excel. Для использования этих надстроек в большинстве случаев нужно лишь активировать их.

  • Скачиваемые надстройки.    Дополнительные надстройки для Excel можно скачать и установить со страницы Загрузки на сайте Office.com.

  • Пользовательские надстройки.    Многие разработчики и поставщики решений создают пользовательские надстройки модели COM, надстройки автоматизации, VBA и XLL. Они требуют установки.

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

  • Вкладка Данные. После установки и активации надстроек «Надстройка анализа» и «Решение» команды «Анализ данных» и «Найти решение» доступны на вкладке «Данные» на ленте.

  • Вкладка «Главная». Другие надстройки можно добавить на вкладку Главная.

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

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

Активация предварительно установленной Excel надстройки    

  1. В меню Инструменты выберите Надстройки.

  2. В поле Доступные надстройки выберите для надстройки, которая вы хотите активировать, и нажмите кнопку ОК.

Установка надстройки Excel    

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

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

  • Другие надстройки, недоступные на компьютере, можно скачать и установить с помощью веб-браузера из скачивания или с других сайтов в Интернете, с сервера в организации или с помощью встроенной службы Store в Excel. Чтобы скачать их, следуйте инструкциям по установке.

    Установка надстройок из Магазина

    1. На ленте щелкните вкладку Вставка.

    2. Нажмите кнопку Магазин.

    3. Для поиска надстройокиспользуйте поле «Категории» или «Поиск».

    4. Нажмите кнопку Добавить, чтобы установить надстройки.

      Примечание: Некоторые надстройки необходимо приобрести.

Удаление надстройки Excel    

  1. На вкладке Вставка нажмите кнопку Мои надстройки.

  2. В Office надстройкищелкните меню 3 точки рядом с надстройки.

  3. Нажмите Удалить.

  4. Ознакомьтесь с уведомлением о других устройствах и нажмите кнопку Удалить.

Нужна дополнительная помощь?

Время на прочтение
7 мин

Количество просмотров 312K

Приветствую всех.

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

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

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

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

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

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

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

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

Появилась вкладка.

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

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

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

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

Кодим

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

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

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

Sub FormatPrice()End Sub

Напишем Hello World:

Sub FormatPrice()
    MsgBox "Hello World!"
End Sub

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

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

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

' Процедура. Ничего не возвращает
' Перегрузка в VBA отсутствует
Sub foo(a As String, b As String)
    ' Exit Sub ' Это значит "выйти из процедуры"
    MsgBox a + ";" + b
End Sub' Функция. Вовращает Integer
Function LengthSqr(x As Integer, y As IntegerAs Integer
    ' Exit Function
    LengthSqr = x * x + y * y
End FunctionSub FormatPrice()
    Dim s1 As String, s2 As String
    s1 = "str1"
    s2 = "str2"
    If s1 <> s2 Then
        foo "123""456" ' Скобки при вызове процедур запрещены
    End IfDim res As sTRING ' Регистр в VB не важен. Впрочем, редактор Вас поправит
    Dim i As Integer
    ' Цикл всегда состоит из нескольких строк
    For i = 1 To 10
        res = res + CStr(i) ' Конвертация чего угодно в String
        If i = 5 Then Exit For
    Next iDim x As Double
    x = Val("1.234"' Парсинг чисел
    x = x + 10
    MsgBox xOn Error Resume Next ' Обработка ошибок - игнорировать все ошибки
    x = 5 / 0
    MsgBox xOn Error GoTo Err ' При ошибке перейти к метке Err
    x = 5 / 0
    MsgBox "OK!"
    GoTo ne

Err:
    MsgBox 

"Err!"

ne:

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

    ' Циклы бывает, какие захотите
    Do While True
        Exit DoLoop 'While True
    Do 'Until False
        Exit Do
    Loop Until False
    ' А вот при вызове функций, от которых хотим получить значение, скобки нужны.
    ' Val также умеет возвращать Integer
    Select Case LengthSqr(Len("abc"), Val("4"))
    Case 24
        MsgBox "0"
    Case 25
        MsgBox "1"
    Case 26
        MsgBox "2"
    End Select' Двухмерный массив.
    ' Можно также менять размеры командой ReDim (Preserve) - см. google
    Dim arr(1 to 10, 5 to 6) As Integer
    arr(1, 6) = 8Dim coll As New Collection
    Dim coll2 As Collection
    coll.Add "item""key"
    Set coll2 = coll ' Все присваивания объектов должны производится командой Set
    MsgBox coll2("key")
    Set coll2 = New Collection
    MsgBox coll2.Count
End Sub

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Считали группы из очередной строки.
  2. Пробегаемся по всем группам в порядке приоритета (вначале более крупные)
    1. Если текущая группа не совпадает, вызываем процедуру AddGroup(i, name), где i — номер группы (от номера текущей до максимума), name — её имя. Несколько вызовов необходимы, чтобы создать не только наш заголовок, но и всё более мелкие.
  3. После отрисовки всех необходимых заголовков делаем еще одну строку и заполняем её данными.

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

Function GetCol(Col As IntegerAs String
    GetCol = Chr(Asc("A") + Col)
End FunctionFunction GetCellS(Sheet As String, Col As Integer, Row As IntegerAs Range
    Set GetCellS = Sheets(Sheet).Range(GetCol(Col) + CStr(Row))
End FunctionFunction GetCell(Col As Integer, Row As IntegerAs Range
    Set GetCell = Range(GetCol(Col) + CStr(Row))
End Function

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

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

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

FormatPrice

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

    Sheets(

"data").Activate
    I = 2
    Do While True
        If GetCell(0, I).Value = "" Then Exit Do
        ' ...
        I = I + 1
    Loop
End Sub

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

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

Dim I2 As Integer
For I2 = 1 To GroupsCount
    Groups(I2) = GetCell(I2, I)
Next I2
' ...
For I2 = 1 To GroupsCount ' VB не умеет копировать массивы
    PrGroups(I2) = Groups(I2)
Next I2
I =  I + 1

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

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

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

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

Перед FormatPrice

Sub AddHeader(Ty As Integer, Name As String)
    GetCellS("result", 1, CurRow).Value = Name
    CurRow = CurRow + 1
End Sub

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

For I2 = 0 To DataCount - 1
    GetCellS("result", I2, CurRow).Value = GetCell(I2, I)
Next I2

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

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

Sheets("Result").Activate
Columns.AutoFit

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

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

Sub AddHeader(Ty As Integer, Name As String)
    Sheets("result").Range("A" + CStr(CurRow) + ":C" + CStr(CurRow)).Merge
    ' Чтобы не заводить переменную и не писать каждый раз длинный вызов
    ' можно воспользоваться блоком With
    With GetCellS("result", 0, CurRow)
        .Value = Name
        .Font.Italic = True
        .Font.Name = "Cambria"
        Select Case Ty
        Case 1 ' Тип
            .Font.Bold = True
            .Font.Size = 16
        Case 2 ' Производитель
            .Font.Size = 12
        End Select
        .HorizontalAlignment = xlCenter
    End With
    CurRow = CurRow + 1
End Sub

Уже лучше:

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

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

Sub AddHeader(Ty As Integer, Name As String)
    With Sheets("result").Range("A" + CStr(CurRow) + ":C" + CStr(CurRow))
        .Merge
        .Value = Name
        .Font.Italic = True
        .Font.Name = "Cambria"
        .HorizontalAlignment = xlCenterSelect Case Ty
        Case 1 ' Тип
            .Font.Bold = True
            .Font.Size = 16
            .Borders(xlTop).Weight = xlThick
        Case 2 ' Производитель
            .Font.Size = 12
            .Borders(xlTop).Weight = xlMedium
        End Select
        .Borders(xlBottom).Weight = xlMedium ' По убыванию: xlThick, xlMedium, xlThin, xlHairline
    End With
    CurRow = CurRow + 1
End Sub

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

В начале FormatPrice

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Далее. На панели VB найдите синий кружок и наведите курсор мыши на него. Если сделаете все правильно, то у вас должна появиться надпись-подсказка «Записать макрос». Жмите левую кнопку мыши, при этом появится окно с именнем «Запись макроса». Пока ничего менять не будем, а сразу нажмем кнопку ОК, что повлечет за собой закрытие данного окна, но вместе с тем откроется новое и, кроме того, на панели VB кнопка с синим кружком превратится в кнопку с синим квадратом, с помощью которого мы сможем остановить запись макросов. А с этого момента практически любое наше действие будет записываться, поэтому не спешите и не совершайте необдуманных действий, так как потом будет трудно разобраться в созданном макросе. Итак, вы нажали ОК, и у вас получилась примерно следующая картина:

Выделив произвольную ячейку, вводим наш первый текст, по завершению ввода нажмем клавишу ENTER. Далее внизу рабочего листа ищем ярлычки с надписью Лист1, Лист2 и Лист3. Шелкнем левой кнопкой мышы по ярлычку с надписью Лист2. Снова произведем ввод текста согласно поставленной нами выше задачи. Это же самое сделаем на третьем листе. Затем, вернувшись на первый, в ячейке, расположенной ниже записи, наберем: «Все! Работа сделана! «и, нажав ENTER, щелкаем по синему прямоугольнику для остановки записи. Остается только запрограммировать работу макроса на какое-либо действие пользователя.

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

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

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

Ответ на него не так прост.

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

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

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

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

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

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

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

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

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

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

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

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

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

Далее. На панели VB найдите синий кружок и наведите курсор мыши на него. Если сделаете все правильно, то у вас должна появиться надпись-подсказка «Записать макрос». Жмите левую кнопку мыши, при этом появится окно с именнем «Запись макроса». Пока ничего менять не будем, а сразу нажмем кнопку ОК, что повлечет за собой закрытие данного окна, но вместе с тем откроется новое и, кроме того, на панели VB кнопка с синим кружком превратится в кнопку с синим квадратом, с помощью которого мы сможем остановить запись макросов. А с этого момента практически любое наше действие будет записываться, поэтому не спешите и не совершайте необдуманных действий, так как потом будет трудно разобраться в созданном макросе. Итак, вы нажали ОК, и у вас получилась примерно следующая картина:

Выделив произвольную ячейку, вводим наш первый текст, по завершению ввода нажмем клавишу ENTER. Далее внизу рабочего листа ищем ярлычки с надписью Лист1, Лист2 и Лист3. Шелкнем левой кнопкой мышы по ярлычку с надписью Лист2. Снова произведем ввод текста согласно поставленной нами выше задачи. Это же самое сделаем на третьем листе. Затем, вернувшись на первый, в ячейке, расположенной ниже записи, наберем: «Все! Работа сделана! «и, нажав ENTER, щелкаем по синему прямоугольнику для остановки записи. Остается только запрограммировать работу макроса на какое-либо действие пользователя.

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

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

Цель предлагаемого задания:

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

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

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

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

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

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

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

Объектно-ориентированный язык программирования Visual Basic for Application (VBA) является версией языка Visual Basic и предназначен для использования в среде приложений Microsoft Office (Word, Excel, Access и др.)

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


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

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

I этап — Создание пользовательского интерфейса

Подготовка листа Excel для дальнейшей работы:

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

l Лист3 – “Фабрика”

l Лист4 – “Холдинг”

l Лист5 – “Турагенство”

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

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

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

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

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

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

II этап — Создание макросов.

1. Установим курсор на листе “Меню”.

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

Рис. 2. Диалоговое окно “Запись макроса”

По умолчанию макросам присваиваются имена Макрос1, Макрос2 и т.д. Чтобы легче было распознать макрос, лучше присвоить ему имя, поясняющее его назначение. Присвоим макросу имя “Турагенство” и нажмем кнопку Ок. Появится плавающая панель инструментов с кнопкой “Остановить запись”. Теперь все производимые нами действия будут записываться до тех пор, пока не будет нажата эта кнопка.
Не выполняйте никаких лишних действий. Все ваши действия фиксируются и записываются. Надо выполнить только одно действие.

l Перейдите на лист “Турагенство”.

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

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

Рис. 3. Главное окно редактора VBA

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


III этап — “Оживление” кнопок.

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

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

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

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

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

IV этап Решение задачи на листе “Турагенство”

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

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

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

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

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

Определите минимальную стоимость тура.

Рассчитайте среднюю скидку за проданные путевки.

Продажа путевок туристической фирмой

«Пять континентов» за декабрь 2003 г.

Цена за тур (в евро)

Кол-во проданных путевок

Стоимость проданных путевок (в евро)

Количество путевок, проданных со скидкой

Размер скидки за проданные путевки (в евро)

Итоговая выручка (в евро)

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

2. Гистограмму по графе «Итоговая выручка».

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

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

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

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

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

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

Рис. 5. Выполненная работа

Проверка выполненного задания

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

1. Таблицу со значениями.

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

Рис. 6. Выполненная работа с формулами

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

4. Уметь объяснить адресацию ячеек в Excel. Для ссылок на ячейки используются два формата. Формат А1 (ссылка состоит из имени строки и номера столбца). Формат R1C1 – этот формат мы видим в созданных макросах при нахождении среднего значения, максимума и минимума. В формате R1C1, после буквы “R” указывается номер строки ячейки, после буквы “С” — номер столбца. Например, абсолютная ссылка R1C1 эквивалента абсолютной ссылке $A$1 для формата А1. Для задания относительной ссылки указывается смещение по отношению к активной ячейке. Смещение указывается в квадратных скобках. Знак указывает направление смещения. Например, R[-11]C:R[-5]C) (фрагмент адресации взят из нашего макроса Минимум). Активной ячейкой в этом макросе является ячейка B14. R[-11]C – обозначает относительную ссылку на ячейку, расположенную на 11 строк выше в том же столбце, т. е. ячейку B3. R[-5]C) — обозначает относительную ссылку на ячейку, расположенную на 5 строк выше в том же столбце, т. е. ячейку B9. Таким образом, формируется диапазон В3:В9 для нахождения минимального значения.

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

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

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

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

Рис. 7. Меню “Торгово-закупочное предприятие”

Рис.8 . Таблица с формулами

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

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

— 20-30 файлов *.xlsx

— объем файлов 100-150 МБ каждый

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

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

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

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

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

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

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

— внести буквенно-цифровые символы для поиска;

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

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

6. отработать данный поиск во всех файлах.

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

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

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

Понравилась статья? Поделить с друзьями:
  • Утилиты для работы с excel
  • Утилиты для компьютера word
  • Утилиты для microsoft word
  • Утилиты для excel word
  • Утилитой pdf to word