Ну, про GitHub это отдельная песня это платформа, которая много чего умеет, поэтому важно понять что именно нужно - можно, например, через perplexity.ai на русском языке вопросы про него позадавать - весьма неплохо отвечает. Я тут больше про автоматизацию Excel пообщаться хотел
Здесь собраны инструменты (VBA код, addin, просто таблицы без кода, которые, например, были удобны для конкретных задач) которые я разрабатывал для своих реальных проектов, и которыми пользуюсь каждый день. Решил собрать всё в одном месте и немного структурировать.
Лучший способ что-нибудь улучшить - обсудить со знающими людьми - поэтому любые Ваши идеи и предложения очень приветствуются!
Важно: весь код открыт (GPL 3.0 License) — и Вы можете свободно его использовать в ваших любых проектах.
Что внутри?
• Calc_Tables Add-In — удобный инструмент для анализ сценариев «Что если» с перебором сразу нескольких параметров, и подбора искомых значений. Удобен например для финансовых моделей с визуализацией результатов.
• Decision making tool — система поддержки принятия решений на основе экспертных оценок с учетом весов мнений экспертов.
• VBA OmniLogger — гибкое логирование сообщений и ошибок в txt, csv, json, окно Immediate или прямо на лист Excel.
• Dynamic GANTT — генерация диаграмм Ганта с автообновлением при изменении данных.
• VBA Profiler — инструмент, позволяющий найти где именно "зависает" ваш медленный VBA код.
• Snippets v1.0 — 40+ VBA функций для работы с файлами, API Windows, JSON и др.
• и многое другое - добавляю решения по мере их появления.
Для кого это?
• Новички и просто пользователи со своими ежедневными задачами — в разделе Wiki есть инструкции со скриншотами (например, как настроить Decision making tool для выбора поставщика) по всем выложенным инструментам.
• Разработчики — готовые сниппеты ускорят рутину вроде парсинга текстовых файлов или работы с Outlook.
• Тестеры — буду благодарен найденым ошибкам и предложеным улучшениям.
• Предложить новый инструмент (например, вывод грфиков из Excel в PowerPoint).
• Обсудить рефакторинг кода — что-то реализовано в виде классов, что-то в виде разрозненных функций, буду рад обсудить Ваши предложения по оптимизации.
Также я и складирую там свои фрагменты кода (snippets). Функции собраны в файлы по их назначению:
Файлы: 1. Доступ к объектам Excel - функции и процедуры для упрощения доступа к объектам Excel, таким как рабочие книги, листы, строки, столбцы и т. д. 2. Буфер обмена - процедуры для работы с буфером обмена 3. Файлы и папки - диалоги/проверки/загрузка и сохранение данных в/из файлов 4. Логирование - запись событий в таблицу Excel с помощью VBA 5. Упрощение работы с VBA - поддержка функций и процедур для упрощения кодирования на VBA 6. Работа с текстом - процедуры для работы с текстом, хранящимся в переменных String и/или массивах 7. Windows API - функции из Windows API (пока там только одна функция – Sleep(ms), но очень уж полезная)
Вот лишь некоторые из наиболее мной часто используемых функций:
enableFastCode() - Включает/выключает режим автообновления Excel - ЗНАЧИТЕЛЬНО ускоряет вычисления, особенно на большом количестве обращений к ячейкам таблиц!
incr() - Удобная замена строк типа i=i+1; j=j-1; t=”My name is “: t = t & “Vasya” – будет incr i,1; incr j,-1; incr t, “Vasya”
getCellValueWithoutOpeningFile() - Получение значения ячейки без открытия внешнего Excel-файла
findRow() - Находит первую строку в целевом диапазоне с теми же значениями, что и в исходной строке, для указанных столбцов
lastColumnNameInTheRow() - Найти имя столбца последней непустой ячейки в строке
chooseFileOrFolder() - Открытие диалога для выбора файла или папки
getFilesList() - Получить список указанных файлов из выбранной папки, например только *.docx и *.xlsx
removeFromArray() - Удаление элемента с указанным индексом из динамического массива
parseRecords() - Парсинг частей целевого текста между маркерами в массив для таблично-подобного текста (например, веб-страниц)
hasOneOfKeywords() - Проверяет, содержит ли текст одно из ключевых слов, хранящихся в массиве
Важно: репозиторий на английском, но Chrome/Edge отлично переводят страницы. Если что-то непонятно — пишите здесь, обязательно объясню.
Надеюсь, эти инструменты будут Вам полезны. Также буду рад обсудить новые идеи.