Как стать автором
Обновить
0.42

Visual Basic for Applications *

Visual Basic для автоматизации в приложениях

Сначала показывать
Порог рейтинга
Уровень сложности

Traceback в VBA? ЧТО?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.6K

Как часто вы ловите ошибки в VBA?
А как часто вам приходится пытаться понять откуда ноги растут?

Если макрос состоит из одной процедуры, это немного другая история...
Но вот если у вас полноценный стек вызовов, когда:

Main() -> NestedSub1 -> NestedFunc -> NestedSub2 ... -> NestedSubN

как отловить, в каком произошла ошибка?

Окей, вы скажите "Поставим On Error GoTo Catch и в Catch: Debug.Print "Function name"", да?

А если эту функцию вызывают несколько разных Sub/Function, как понять в каком из них произошла ошибка?

Читать далее

Новости

Не нажимайте эту кнопку: почему макросы Office все еще опасны

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров8.7K

В 1993 году вышел Excel 5.0 — первый продукт Microsoft, поддерживающий макросы на языке Visual Basic for Applications. Это событие стало настоящей революцией для офисных клерков: сотрудники, не обладавшие специальными знаниями в программировании, вдруг получили мощный инструмент для автоматизации монотонных офисных задач, которые прежде отнимали уйму времени. 

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

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

Читать далее

Как на Excel заработать сотни миллионов? Опыт проекта RTO

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров9.8K

Добрый день, читатели!

С чего обычно начинаются веселые проекты? Хочу поделиться одной историей длиной в 3 года.

Читать далее

Парсинг котировок ценных бумаг в Microsoft Excel и Google Таблицы с любого сайта

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров7.4K

Хотя возможность автоматического получения котировок в «Эксель» или «Гугл Таблицы» упрощает ведение портфелей, существует несколько технических препятствий, с которыми можно столкнуться при парсинге или скрапинге (в общем виде это автоматический сбор данных из интернета, в таблицах работает через формулы или скрипты):

📍 Динамическая загрузка контента: современные веб-сайты часто используют JavaScript для загрузки текущий цен уже после первоначальной загрузки страницы. Это создает проблему для базовых методов парсинга.
📍 Ограничения API: некоторые веб-сайты и финансовые учреждения предлагают общедоступные API (например, Московская биржа или Банк России), но и они имеют свои ограничения.
📍А бывает, что можно найти АПИ, например для investing.com, но чтобы воспользоваться им потребует поиск альтернативных методов - имитация человека для того чтобы получить данные - использование автоматизации браузера.

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

Парсим 🤖

Формула прибыли: как автоматизировать расчеты юнит-экономики для тысяч товаров

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.6K

Многие предприниматели до конца не понимают, что такое юнит-экономика и почему её расчет так важен. Постараюсь объяснить кратко и понятно. Юнит-экономика помогает разобраться в том, из чего складывается себестоимость вашего продукта — это все затраты, которые вы несёте на каждом этапе реализации товара.

Это мой кейс, прошу не судить строго, буду рад конструктивной обратной связи))

Читать далее

Автоматизация рутинной работы в форензике: извлечение временных атрибутов файлов по списку

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров966

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

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

Читать далее

Как я при помощи двух «костылей» смог автоматически сгенерировать опись документов для 700 страниц

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров6.8K

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

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

Автоматизируем создание описи документов🤖

Шел 2025й год… а BASIC все еще в строю. Современной автоматизации сметчика пост — КС-ки

Уровень сложностиПростой
Время на прочтение20 мин
Количество просмотров3.8K

Сейчас в программные решения, связанные с IT в строительном секторе, вливаются большие деньги. Появляются новые программные продукты на базе ERP/CRM систем, которые раньше проектировались под маркетинг и продажи, для электронного документооборота (ЭДО) инженеров (ИТР). Частью современной стратегии Заказчиков многих рангов является путь цифровизации бумажного документооборота в пользу электронного, для чего Минстрой РФ старательно разрабатывает и обязывает к внедрению новые форматы электронных файлов типовых форм документов, на база XML. В этих условиях настоящая статья посвящена стыку новых и старых технологий документооборота в строительстве, на примере формирования комплекта закрывающих финансовых документов по типовым Контрактам в Строительстве.
Читать дальше →

Создание первого макроса JavaScript для табличного редактора Р7 офис

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.7K

Продолжаем публиковать выдержки из бесплатного курса по разработке в Р7 офис

Что такое макросы?

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

Макросы - это так же небольшие скрипты, которые используются для облегчения повседневной работы с различными типами документов. Макросы Р7 используют синтаксис JavaScript и нотацию скриптов API Р7 Document Builder.
Есть несколько причин, по которым Р7 использует JavaScript для макросов:

Читать далее

Отличия разработки на VBA для MS Excel по сравнению JavaScript для Р7-Офис

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров6.2K

Публикуется первая глава бесплатного курса основы разработки для Р7 . Дополнительные материалы можно найти вот тут

Особенности разработки в MS Office (Excel)

Базовым средством автоматизации в офисном пакете Microsoft Office, в течение длительного времени (С 1996 года по настоящее время) является скриптовый язык VBA (VisualBasic for Application). C 2007 года VBA не лицензируется для других разработчиков. Согласно статьи в Википедии , посвященной VBA, этот язык является неким упрощенным подмножеством языка VisualBasic.

Рассмотрим некоторые особенности VBA, которые потом будут являться основой для средств автоматизации в Р7:

Читать далее

VBA+OOP: что, когда, зачем

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.2K

Будучи автором серии статей о полноценной объектно-ориентированной игре "Морской бой", и вообще постоянно рассуждая об ООП в VBA, я вдруг понял, что, возможно, мне не удалось внятно объяснить, когда использование ООП в VBA действительно оправдано.

ООП — это парадигма, что подразумевает определённый способ мышления о коде. Функциональное программирование (ФП) — это другая парадигма, предполагающая иной подход к коду. Процедурное программирование также является парадигмой, где код представляет собой последовательность выполняемых команд. У каждой парадигмы есть свои плюсы и минусы, своя ценность и определённые задачи, которые решаются лучше всего именно в её рамках и,... конечно же, у каждой из них есть свои преданные приверженцы, которые уверены, что их путь – единственно верный. Не верьте всему, что читаете в интернете – мыслите о парадигмах как о разных инструментах: одна из них — молоток, другая — отвертка, третья — лопата.

Не нужно становиться членом команды "Молоток!", "Отвертка!" или "Лопата!" — всё это искусственные рамки. Разные инструменты лучше всего подходят для разных задач.

Поэтому первым вопросом, который вам стоит задать себе, это…

Читать далее

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

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров14K

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

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

Самым простым виделось сделать это, пользуясь средствами самого Excel. Для этого подходило Visual Basic для приложений (VBA) в Office.

VBA Excel и форматирование

VBScript убирают из Windows. Но почему и зачем?

Время на прочтение4 мин
Количество просмотров17K

Корпорация Microsoft сделала интересное завяление — VBScript уберут из ОС Windows. Речь, конечно, о поддержке сценариев VBScript. Почему скриптовый язык программирования потерял актуальной для корпорации? Подробности — под катом.
Читать дальше →

Ближайшие события

Типизированные массивы должны умереть

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.9K

Хаха :). Не, я серьезно. Позвольте мне объяснить.

Хорошо. Что такое типизированный массив?

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

Читать далее

VBA макросы. От бессмыслицы к осмысленному. Интерфейс

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров8.9K

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

Читать далее

VBA макросы. От бессмыслицы к осмысленному. Ядро

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров12K

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

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

Чтиво про рефакторинг VBA кода.

Читать далее

Как исправить изменившийся номер договора в нескольких сотнях Эксель файлов менее чем за минуту

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров12K

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

Так появилась задача однотипной замены номера договора и его даты в каждом из *.xlsx файлов, которые были расположены в папках, названных по адресу объекта. Таких папок было множество и некоторые ещё имели вложенные подкаталоги.

Ручной способ, который состоит из использования сочетания клавиш Ctrl + H хоть и позволял сделать замену во всей книге Microsoft Excel сразу, но подразумевал что придётся открыть каждый файл по отдельности, нажимать несколько раз (под замену не только номер, но и дата) сочетания клавиш для замены, сохранять книгу Экселя, закрывать книгу, открывать новую книгу. В общем совершать множество механических действий.

Я конечно же стал думать, как можно наиболее простым для себя способом сделать это множество автозамен. Выбор сразу пал на VBA - Visual Basic для приложений. Ведь при помощи VBA можно заставить Эксель делать то, чего он не умеет по умолчанию.

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

VBA Excel автозамена

Взгляд НСИ на VBA в Excel и не только

Время на прочтение6 мин
Количество просмотров7.1K

Салют! На связи Ганзюк Владимир. Тружусь инженером по нормативно-справочной информации (НСИ) в компании Bimeister.

Хочу поделиться с вами опытом работы с Excel: расскажу, как можно ускорить выполнение рутинных задач при работе с составлением наименований согласно нормативно-технической документации (НТД).

Читать далее

Outlook как сервер микросервисов

Время на прочтение8 мин
Количество просмотров3.2K

Доброго времени суток. 

Ты ж у нас один программист !!!
Небольшая вводная. Я для друзей, по их запросам, выгружаю данные из MS SQL Server'а. Друзья дают исходные данные, для которых надо сделать выгрузку в файлах .csv. Исходных данных (ИД) может быть от 1 до ... строк. Я загружал данные в sql таблицу с помощью задачи или Task в английской версии в SQL Server Management Studio (SSMS). Исторически сложилось, что все sql файлы со скриптами хранятся на моем ПК. Я файлы открывал в SSMS и запускал на выполнение. Результаты записывал в файл и отправлял сообщение, что обработка выполнена. Друзья забирали файлы с результатами. 

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

Читать далее

VBA, Word: перекрёстные ссылки согласно ГОСТ (убираем из текста паразитные названия «Рисунок..», «Таблица..» и тп)

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров10K

Меня попросили написать статью по поводу известной проблемы с паразитными названиями перекрёстных ссылок в тексте документа MS Word, а именно, когда вы вставляете в текст документа перекрёстную ссылку (меню ссылки/перекрёстная ссылка) Word позволяет вставить либо название типа "Рисунок ..." либо название полностью, что приводит к тексту типа "...на рисунке (Рисунок 10) мы видим..." или ещё более нелепым конструкциям, тогда как согласно ГОСТ необходимо оставлять только номер.

Эту проблему просто решить с помощью небольшого скрипта VBA.

Читать далее, посмотреть код
1
23 ...