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

Visual Basic for Applications *

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

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

ChatGPT не умеет писать макросы

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

Ты попался на кликбейт, олуу... ну нет, на самом деле не совсем.

Итак, все вы знаете (а если не знаете, то пора выбираться из вакуума в котором вы находитесь) про такую нейросеть как ChatGPT. Мне все никак не удавалось попробовать его поюзать в связи с некоторыми сложностями доступа, и вот вчера наконец повезло. Ну и естественно я начал проверять его знания VBA?

Читать далее
Всего голосов 6: ↑2 и ↓4-2
Комментарии18

C# как замена VBA в Excel

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров14K
Я довольно много пишу на C#, и это мне нравится. Время от времени мне хочется, чтобы можно было использовать C# внутри других приложений.

Думаю, одним из таких приложений, в которых хорошо приживётся C#, был бы Excel, этим языком можно было бы заменить VBA. Язык VBA уже немного отстаёт от времени, а Microsoft не планирует его апгрейдить. Вместо него — компания предлагает среду-песочницу для JavaScript под названием Office Scripts.

Я понимаю привлекательность JavaScript для веб-версии Excel, но не в качестве хорошей замены VBA.

Так как этим не собирается заниматься Microsoft, я решил, что могу попробовать сам. В конце концов, если Microsoft так увлечена JavaScript, маловероятно, что она выдавит меня с обширного рынка использования C# в Excel.

Итак, вот что я создал:

QueryStorm IDE, выполняющая запрос LINQ для таблицы Excel

«Это что, IDE языка C#, выполняющая запросы LINQ для таблиц Excel?» Именно. Всё так и есть.

Я назвал это QueryStorm. Моя работа над этим проектом началась ещё в 2014 году. Изначально у него имелась только поддержка SQL, и с тех пор я продолжал над ним работать, постепенно добавляя поддержку скриптинга на C#, пользовательских функций C#/Excel, поддержку NuGet, отладчик и даже магазин приложений!
Читать дальше →
Всего голосов 67: ↑66 и ↓1+86
Комментарии22

Как рассчитать скидку за первый и последний этаж почти без формул в Excel

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

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

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

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

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

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Истории

Как мы быстро создавали задачи в Jira по ГОСТовому ТЗ и почему это облегчило работу с госзаказчиком

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

Михаил Михайлец, руководитель группы аналитиков направления облачных решений Лиги Цифровой Экономики, рассказал, как его команда попробовала быстро подготовить задачи по классическому ТЗ (ГОСТ 19) в Jira при работе с государственным заказчиком и что из этого получилось.

Пожалуй, большинству известно, что ГОСТ предусматривает водопадную модель разработки ПО. До недавнего времени она была зафиксирована в постановлении Правительства Российской Федерации от 6 июля 2015 г. № 676 «О требованиях к порядку создания, развития, ввода в эксплуатацию, эксплуатации и вывода из эксплуатации государственных информационных систем и дальнейшего хранения содержащейся в их базах данных информации».

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

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

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии2

Разработка надстройки Macro Tools VBA – для автоматизации процесса создания макросов в VBE MS Excel

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

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

Предыстория — личный опыт

Хочу поделиться своим опытом использования надстроек, которые позволяют автоматизировать процесс разработки макросов в Visual Basic Editor MS Excel (далее VBE). В результате которого я разработал свою надстройку для разработки макросов VBA.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии27

Как я использовал-таки классы в VBA и даже полюбил это дело

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

На собеседовании:

- Как у вас с Экселем?

- Я его ненавижу!

- О, да вы VBA-разработчик!

Я не могу открывать здесь Америк, ибо не технарь, но раз тут был чей-то текст, как написать "Hello world" в Word'e, и всем понравился, то думаю, что нелишним будет и мой небольшой опыт.

п1. Как обычный пользователь пишет макросы в эксельке

Периодически и даже регулярно мне приходится читать чужой код на VBA. Как русскоязычных соотечественников, так и их зарубежных коллег. И создается впечатление, что что макрописание в MS-продуктах, несмотря на большую распространенность, достаточно неплохо разработанный макрорекордер (по сравнению с импортозамещающими аналогами - так просто идеально разработанный), в русский народ не пошло, или почти не пошло. Подавляющее большинство кода для Экселя - это так или иначе связанные между собой и кое-как зацикленные куски, записанные макрорекордером и обработанные напильником.

Ну, например, очень редко для обращения к ячейке употребляется метод Cells с индексами номера строки и колонки, по большей части используют уродцев типа Cells("A"&(i+1)) , а переход к следующей ячейке делают через Offset (и. что интересно, код работает - умудряются не запутываться в сдвиге А относительно Б, С относительно Б и так далее, могу только предположить, сколько такую связку из офсетов отлаживают). Массивов в их классическом виде средний российский макрописец не признает в принципе, и я догадываюсь, что он просто не знает, что есть такая сущность, и все переборы и вычисления проводит. обращаясь напрямую к ячейкам (хотя сансэй Уокенбах в каждой книжке повторяет, что массивы работают на порядок быстрей).

Читать далее
Всего голосов 28: ↑24 и ↓4+29
Комментарии15

Давно забытый ExecuteExcel4Macro

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

Привет, Хабр!

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

Разумеется, это было только временное решение, и мы уже заменили его российским специализированным ПО, автоматизирующим HR-процессы в сфере управления талантами.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии10

Библиотека функций для расчета свойств воды и водяного пара

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

В 2014 году захотел и реализовал библиотеку функций для Excel на VBA.

При составлении библиотеки использованы документы Международной ассоциации по свойствам воды и водяного пара (МАСПВ, анг.IASPW):

1. Revised Release on the IAPWS Industrial Formulation 1997 For the Thermodynamic Properties of Water and Steam. August 2007. (Далее в тексте IF97)

2. Release on the IAPWS Formulation 2008 for the Viscosity of Ordinary Water Substance. September 2008.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии5

Как в VBA правильно создавать одномерный массив. ArrayList

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

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

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии25

User Defined Type. Что это и как его использовать, часть 2

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

Итак, в первой части мы затронули применение UDT в обычном модуле, и в комментариях справедливо заметили, что UDT сильно проигрывает классам. И да, действительно, если использовать класс как DTO (Data Transfer Object), он более функционален, чем UDT.

В этой заключительной части, я хотел бы рассказать о применении UDT в классах, кто такой Mathieu Guindon и причем тут резиновая уточка.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Как бороться с «темами» в документе MS Visio

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

В MS Visio начиная с версии 2007 появилась возможность называемая «темы» (со слов разработчиков она предназначена «для придания схеме профессионального вида»)…

В этой статье вы узнаете как удалить «нежелательное влияние» тем в документах MS Visio.

Увидеть это полностью…
Всего голосов 4: ↑3 и ↓1+4
Комментарии34

Программа для ведения архива медиафайлов в полевых условиях

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

Почему для фольклорных экспедиций нужно писать программы?

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

Рассказываю, как мы описываем примерно 200 часов интервью за 10 дней экспедиции.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии41

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

Неформальный Эксель: OpenGL, игры на GDI+ и инфографика теперь и в VBA

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


На Хабре уже было довольно много интересных публикаций с неформальным использованием Экселя (списочек под катом). Этой статьёй мне хочется поделиться с сообществом красивыми результатами нашего французского коллеги. Автор, Тьерри Гасперм (Thierry Gasperment), создаёт подобную красоту на VBA под Excel / Access / Word и VB6. Увы, сайт на французском, а материалы, хоть и свободны для использования, но для просмотра и скачивания зачастую требуют регистрации. По этой причине я поместил наиболее интересные примеры на свой GitHub. Для тех, кто захочет "выйти за пределы шахматной доски", советую всё же потратить пару минут своего драгоценного времени и зарегистрироваться на сайте. Оно того стоит, так как количество и качество информации на сайте Тьерри заслуживают того. Для регистрации и просмотра рекомендую Chrome: автоматический перевод Edge порождает "гуртовщиков мыши" и прочие химеры вроде "glutMouseРазумный" и "Силовая установка" (PowerPoint).


Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии4

User Defined Type. Что это и как его использовать, часть 1

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

Картинка: Designed by vectorjuice / Freepik

Большинство пользователей VBA прекрасно знают такую штуку как Type, он же User Defined Type (UDT). Кто-то, как я, использует его на повседневной основе. Кто-то, возможно, о нем слышал, но не мог понять как его применить.

Лично я помню, как не так давно смотрел на этот Type и пытался понять зачем он мне нужен, ведь он просто хранит в себе переменные, которые можно с тем же успехом объявить в функции/процедуре или на уровне модуля?

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

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии8

Как хранить Config в Excel

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

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

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

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

Читать далее
Всего голосов 18: ↑17 и ↓1+18
Комментарии30

Программирование в Word: зачем, почему?

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


Картинка pch.vector, freepik

Практически каждый из читателей, наверняка не раз (а кто-то и на постоянной основе), имеет потребность в написании и редактировании документов в среде Word.

Однако если подобная деятельность производится с некоторой периодичностью, пытливый ум сразу начинает думать о способах оптимизации своего труда. Одним из таких способов является программирование в среде Visual Basic for Applications,- среде разработки, которая встроена в известные офисные продукты: Word, Excel, PowerPoint и т.д. Статья больше вводная, для тех, «кто совсем не в теме» :-).

Читать дальше →
Всего голосов 11: ↑10 и ↓1+13
Комментарии46

MS Excel — Инициализация модулей VBA

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

В статье описан простой контроллер инициализации модулей VBA Excel.

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

Однако, для обычных модулей с макросами, VBComponent.Type=001, примеров автоматической инициализации автор в сети не обнаружил.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Как обновить 100 Excel файлов, чтобы не отсохли руки и пару слов о немецкой диджитализации

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

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

Читать далее
Всего голосов 8: ↑7 и ↓1+9
Комментарии17

ВПР на максималках

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

Думаю многие, если не большинство, в курсе, что такое ВПР и его неоспоримая сила при поиске и объединении данных из разных таблиц. Те же, кто достиг просветления, используют не менее полезную функцию ИНДЕКС, чтобы не париться, где там идентификатор: слева или справа.

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии8