Страницы: 1
RSS
vba vs office scripts, что лучше vba vs office scripts?
 
Добрый день
Работаю с Ексель, немного пишу макросы по мере необходимости, не спец, но пока все свои задачи удавалось решать с помощью vba  и, конечно,  не без помощи добрых людей с этого сайта
Собственно вопрос возник в связи с тем что много разговоров что vba устарел и рано или поздно ему конец. Майкрософт его не развивает и замена ему это Office Script. Так как работа у меня связана с Ексель и без макросов не обойтись, то терзают смутные сомнения постоянно, а не пора ли уже переходить на новую технологию? И так как не гений программирования и на овладение vba на моем самом скромном уровне было потрачено много пота и времени, то хотелось бы для начала понимать а стоить ли туда переходить, может эта новая технология загнется (такое же бывает что что то пошло не так) или она не может покрыть полностью возможности vba (читал такое что нет доступа к компьютеру а только к книге, это накладывает ограничения на открыть макросом книгу или создать новую, сохранить книгу и т.д.? может не так понял)
Понимаю что технологию недавно ввели и еще не все с ней ясно как будет, и рано еще туда идти наверно, но с другой стороны так как не гений программирования и уже давно не мальчик и обучаться труднее, мысли что может уже лучше потихоньку готовиться заранее
В общем интересует ваше мнение, может кто тоже что то подобное обдумывал, взвешивал плюсы и минусы, столкнулся с ограничениями, что vba может это а Office Script не может
Облака, совместная работа и т.д. особо не интересует, пока работаем локально на десктопах
Изменено: Ливиан - 24.05.2024 11:12:24 (дополнил)
 
Ливиан, здравствуйте
Цитата
Ливиан: не пора ли уже переходить на новую технологию?
точно не пора. Зачем? VBA прекрасно работает и нет (я не знаю) каких-либо причин его ликвидировать в будущем. Возможно, что-то добавят, помимо него — это да. Но, опять же, много чего балаболилось, но дальше разговоров никуда не ушло.
    VBA — прекрасный и относительно несложный ЯП. С его помощью можно сделать очень многое в Excel и не только. Отсутствие развития даёт неожиданный плюс в виде идеальной совместимости. Код, написанный сегодня, скорее всего, будет прекрасно работать и в книгах 2003го офиса (с оговорками по поводу наличия соответствующих инструментов/объектов/методов).

Цитата
Ливиан: vba может это а Office Script не может
я первый раз слышу про Office Script и думаю, что он может намного меньше, чем VBA и очень вряд ли может что-то, чего не может VBA.

Учитывая вышеизложенное, а, также,
Цитата
Ливиан: на овладение vba на моем самом скромном уровне было потрачено много пота и времени
предлагаю "не дёргаться" и спокойно заниматься своими делами.
    Есть желание и возможность — расширяйте свои возможности за счёт других ЯП и/или БД.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Ливиан, можно, например для работы с данными использовать python и файлы в формате csv. Файлы этого формата также можно открывать и в Excel.
Из плюсов: бастрая разработка того, что надо и минимум кода. Плюс, куча подключаемых библиотек для работы с pdf и картинками в том числе (для их конвертации в Excel). Если постоянно работаете в Windows, то можно еще почитать про PowerShell. На сколько я знаю, он идет из коробки и может пригодится для автоматизации своих рутинных задач.
Если решите сменить операционную систему, то welcome в Linux. Он бесплатен и содержит кучу полезных утилит для работы с текстом (включая регулярные выражения и редакторы). Например поиск дублей в файле из 1000_000 строк ищется за несколько секунд. На сколько я знаю, он создавался именно для этих целей.
Все вышеописанное - сугубо моё мнение.
Успехов Вам и всего наилучшего! :)  
 
Цитата
artemkau88: поиск дублей в файле из 1000_000 строк ищется за несколько секунд
это очень долго  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, я просто для примера написал (на самом деле все гораздо быстрее, наверное зависит от платформы, но  у меня на худо-бедно современном ПК результат виден сразу :) ). На 10_000_000 тоже так же будет искать, я думаю, надо смотреть. :)  
 
artemkau88, понимаю  :)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Благодарю за Ваши советы, vba действительно полностью покрывает мои нужды, больше мне и не надо в принципе. Немного гнетут опасения что что то важное не использую и устарею на рынке труда... и что прикроют vba в конце концов и тогда хана. csv активно пользуюсь, в сторону питона нет нет да гляжу, потому как начитался что он самый простой для изучения и пользования, но если бы была полная уверенность что vba еще поживет лет так 15-20, то вообще бы жил и не тужил...  
 
Ливиан, пайтон, думаю, стоит изучить. Это не должно быть сложно и он невероятно универсален и востребован. Также, подумайте про SQL.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, согласен с Вами, пайтон  все больше и больше становится must have, плюс самый простой, SQL тоже видимо придется осваивать
Благодарю всех за советы, как всегда пришел с проблемой и помогли, спасибо!
 
Jack Famous, , провел небольшой эксперимент. Размножил поему Ромео и Джульетта больше чем на 500_000_000 строк (слова). Файл весит больше 2,5гБ. Железо: 4 гБ оперативки и 2-х ядерный процессор (виртуалка). Время работы - 15 минут. Но это без учета операций записи в файл с результатом.

Прикладываю скрины (размер файла, время выполнения и количество строк).
 
artemkau88, создайте отдельную тему и давайте посоревнуемся, если хотите  :)
Но для этого у нас должны быть варианты, которыми мы можем обменяться, чтобы проверить "соперника" на своих машинах.
И опишите задачу — что происходит. И сократите файл да сотни Мб. Всё-же редко текстовые файлы на гигабайты нужно обрабатывать …

Вполне возможно, что "чистый" VBA проиграет Power Shell. Даже, скорее всего. Особенно, если словари запретить.
Всё-равно потом придёт BedVit и разгонит (в обоих смыслах) нас  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, спасибо за предложение. Это не PowerShell - это Linux CLI. :)
Цитата
написал:
И опишите задачу — что происходит.
я поставил задачу перед собой по поиску совпадений в строках (например в файле, в котором каждое слово в отдельной строке), и сколько по времени это займет на достаточно большом файле. То есть, например есть файл Excel или csv с таким количеством строк (условно) и требуется найти количество слов-дубликатов и самих слов, например: '2:morning', где 2 - это количество совпадений и morning - само повторяющееся слово. Но это просто тестовый файл (не придумал ничего лучше этого варианта).
Я скачал поэму Ромео и Джульетта, почистил ее от всех небуквенных символов и скопировал ее в файл в цикле больше 10_000 раз (до размера 2,7 гБ) и прогнал через командную строку Linux на предмет выявления дубликатов. Но, думаю, что это не самый удачный пример.
Цитата
написал:
что "чистый" VBA проиграет
возможно, так как используемые команды написаны на Си. Задачи устраивать соревнования не было, спасибо за предложение. :)
Цитата
написал:
придёт BedVit и разгонит (в обоих смыслах) нас
Уверен на 100_500% :D


Просто хотел написать про другие операционные системы и их возможности для автора темы. :)  
 
artemkau88, благодарю за разъяснения  :idea:
    Отличный результат для штатного инструмента ОС, я считаю.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
artemkau88 написал:
Файл весит больше 2,5гБ. Железо: 4 гБ оперативки и 2-х ядерный процессор (виртуалка). Время работы - 15 минут. Но это без учета операций записи в файл с результатом.
Думаю можно уместится в минуту.

Вот мои результаты с учётом чтения из файла (тоже делал поиск нужной строки в csv файле)
Быстрая реализация поиска строк в csv/txt(ANSI) файлах (WinAPI + С++)

При документированной скорости чтения SSD - 450 Мб/с, 10 ГБ читается за 22,2 сек, что близко к скорости поиска (25,45 сек. с отключенным кешированием - 40 млн.строк, ищем последнюю).
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit, спасибо за ответ! Круто!

Может и мои команды из сообщения выше можно оптимизировать (я особо не заморачивался). Но мой вариант - это штатный инструменатирий из коробки ОС Linux.
P.S.: сам сейчас учу матчасть по Си и C++ для понимания работы ОС "под капотом".
Страницы: 1
Наверх