Visual Basic (VBA) или Python - какой язык выбрать для автоматизации Excel в 2023 г.?

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ต.ค. 2024

ความคิดเห็น • 50

  • @analyst_klondike
    @analyst_klondike  8 หลายเดือนก่อน

    Друзья, смотрите мой курс Python с нуля для начинающих:
    th-cam.com/video/lK2KAGOSOi0/w-d-xo.html
    Подписывайтесь на телеграм-канал:
    t.me/analyst_klondike

  • @EvilTroll-m4b
    @EvilTroll-m4b หลายเดือนก่อน +2

    Мне на работе была поставлена задача обработки типизированных таблиц Excel. Плюс интерфейс пользователя плюс защита от дурака плюс сохдание отчетов в формате Word. Сначала провозился неделю с Python. И вдруг внезапно оказалось, что с наименьшими затратами времени и усилий эта задача выполняется в Lazarus. Интерфейс строится простым перетаскиванием компонентов на форму и прописыванием свойств, все необходимые компоненты дозагружаются из репозиториев, хорошая вики-документация, остается сосредоточиться исключительно на математике. Первая задача была решена за 5 дней, последующих время сократилось в 2 раза. Никого не агитирую, это чисто личное. Хочу лишь сказать, что нет лучших и худших ЯП, есть оптимальные под конкретные задачи.

    • @analyst_klondike
      @analyst_klondike  หลายเดือนก่อน

      А что за такая система, Lazarus? Никогда не слышал

    • @EvilTroll-m4b
      @EvilTroll-m4b หลายเดือนก่อน

      @@analyst_klondike ru.wikipedia.org/wiki/Lazarus

    • @EvilTroll-m4b
      @EvilTroll-m4b หลายเดือนก่อน

      @@analyst_klondike ru.wikipedia.org/wiki/Lazarus

    • @analyst_klondike
      @analyst_klondike  หลายเดือนก่อน

      @@EvilTroll-m4b Видится, что это устаревшая технология. А в чем проблема была сделать это на Python?

    • @EvilTroll-m4b
      @EvilTroll-m4b หลายเดือนก่อน

      @@analyst_klondike нежелание писать интерфейс ручками. Да и не устаревшая технология. Вполне отлично поддерживает GTK и Qt. В отличие от Python создаёт исполняемый бинарник. Паскаль - строго типизированный ЯП (в Питоне с одними переменными такого можно намутить, что потом фиг разберёшь). Область применения довольно узкая, согласен. Но для многих текущих задач даст фору другим ЯП. Я не агитирую. Мне просто все равно на чем писать, я для определенных задач выбираю наиболее удобный для себя инструмент. Кому-то удобней пользоваться Питоном. Я просто не люблю интерпретаторы. Да и синтаксис мне не нравится. Но это, опять же, личное.

  • @denis27054
    @denis27054 6 หลายเดือนก่อน +6

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

    • @analyst_klondike
      @analyst_klondike  6 หลายเดือนก่อน

      По всей видимости, вы весьма продвинутый пользователь Excel, коли пишете код на VBA даже если аналогичный функционал уже есть в Excel "из коробки"

    • @denis27054
      @denis27054 6 หลายเดือนก่อน

      @@analyst_klondike Я не считаю себя продвинутым пользователем, несмотря на то что знаком с ним больше 20 лет. Даже сейчас я не могу сказать что знаю его возможности хотя бы на 50%. В основном использую vba для работы с логами программ - таблицы с десятками тысяч текстовых строк, ищу иголки в стоге сена. Excel в связке с VBA весьма мощный инструмент, жаль что большинство использует его для рисования таблиц.

  • @AwolGame
    @AwolGame ปีที่แล้ว +5

    Жду видео, с примерами работы пайтона и экскеля, очень хочется изучить и понять, в каких случаях можно применять

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov ปีที่แล้ว +1

    Благодарю! Подписка, лайк 👍🔥

  • @vladig6649
    @vladig6649 ปีที่แล้ว +11

    Visual Basic for Applications (VBA) это по сути язык программирования Visual Basic (VB) предназначенный для программирования внутри приложений входящих в пакет MS Office с целью разработки на базе их пользовательских приложений. Обьектные СОМ - модели офисных приложений и модели доступа к базам данных на MS Access и MS SQL имеют в своей основе API в синтаксисе VB (VBA). Из любого другого ЯП, работающиего с СОМ-компонентами, можно также успешно работать изнутри с приложениями MS Office. Принципиальным является то, что VBA концептуально интегрирован в MS Office и саму Windows. Существенным преимуществом языка программирования Visual Basic и VBA является их простота, которой обеспечивается ясность и читабельность написанного кода, особенно необходимых для его дальнейшей поддержки.

    • @analyst_klondike
      @analyst_klondike  ปีที่แล้ว +1

      Да, вы правы, спасибо за такой развернутый комментарий.

    • @vladig6649
      @vladig6649 ปีที่แล้ว +5

      @@analyst_klondike Да, и чтобы начать изучение VBA и разработку на нем приложений, то логичнее будет начать с самого Visual Basic, например, его последней редакции VB6. На практике освоить разработку простых форм с контролами (controls), которые все присутствуют и в VBA, освоить разработку СОМ-компонентов в формате dll-файлов, которые можно будет использовать в своих VBA-приложениях.
      А если посмотреть на MS Office в целом, то его общая концептуальность, архитектура объектных моделей входящих приложений, простой но функционально мощный язык программирования VBA, компоненты доступа к данным - все это продумано и сделано на высочайшем уровне, если не сказать гениально.

    • @menestrier7474
      @menestrier7474 8 หลายเดือนก่อน

      @@vladig6649 Не совсем, начинать лучше с VBA.... Литература свежее, и материалы... а также VB6 развернули вокруг VBA.... Более того ЯП вообще-то развивается, как VB6, так и VBA, и их можно смело назвать полукомпилируемым или полуинтерпретируемым... Но это так мысли в слух, на счет интерфейса тоже не правда, есть дополнение, которое меняет стандартный интерфейс редактора VBA и добавляет некоторые возможности, его и искала... забыла, как называется... потеряла после переустановки ОС... Проблемы вовсе не в развитии, оно идет хоть и не от Microsoft проблема в переходе на облачные сервисы и сетевые технологии... Тут уже JS или Python....

    • @techmashtlt
      @techmashtlt 5 หลายเดือนก่อน +1

      Совершенно верно. Я когда начал применять Еxcel и изучать vba для автоматизации своих инженерных задач я офигел от того какие вещи в нем можно делать, а макроредактор это вообще ключ успеха для новичка.

    • @vladig6649
      @vladig6649 5 หลายเดือนก่อน

      ​@@techmashtlt Одни из лучших, на мой взгляд, учебников для изучения программирования на VBA являются книги Владимира Биллига "Программирование на VBA в MS Office".

  • @AndreyDelay
    @AndreyDelay ปีที่แล้ว +6

    Использую VBA так как очень часто задачи прилетают от коллег и руководства, в формате решил -> отдал в использование.
    Так же внедряются инструменты в книги подконтрольным организациям, и python есть только у пары человек из всех с кем взаимодействую. А 90% ПК задушены безопасниками, я сам программирую на Java , так что даже её не установить никак …

    • @vladig6649
      @vladig6649 ปีที่แล้ว

      VBA концептуально интегрирован в пакет MS Office как инструмент программирования внутри входящих в него приложений. Так сложилось исторически. Принципиальным моментом является простота VBA имеющего в своей основе Visual Basic, которой обеспечивается ясность и читабельность программного кода особенно для его дальнейшей поддержки.

  • @yurafedchenko2733
    @yurafedchenko2733 ปีที่แล้ว +2

    4:26 - проблему переноса программы на python-е можно было бы нивелировать формированием exe - файла, однако лишь для программы единоразового использования это имеет мало смысла.

  • @TheNinesku
    @TheNinesku ปีที่แล้ว +1

    Однозначно надо и то и другое

  • @weters1990
    @weters1990 ปีที่แล้ว +4

    Vba используется не только в ексель ... Имеет свои библиотеки которые взаимодействуют со сторонними офисными продуктами (аксес, ворд, поверпоинт... др.) и не офисными программами (автокад... др.)... Также обращается к windows . Создает папки, файлы , открывает сторонние приложения, выключает процессы...
    Пайтон нужно учить только для красивой визуализации рабочей формы приложения ... Такое себе ... Для офисного рабочего это далеко не важно

  • @СергейКондулуков-з9ч
    @СергейКондулуков-з9ч 7 หลายเดือนก่อน +2

    То есть для простых задач VBA вполне подойдёт. Я только начал изучать Excel. Значит VBA самое то.

    • @analyst_klondike
      @analyst_klondike  7 หลายเดือนก่อน +1

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

  • @darkknight8287
    @darkknight8287 ปีที่แล้ว

    Спасибо

  • @Tosha.V
    @Tosha.V 2 หลายเดือนก่อน

    для python в ms 365 есть оф. поддержка, а для js есть официальное api уже очень давно

    • @analyst_klondike
      @analyst_klondike  2 หลายเดือนก่อน

      Да, Excel развивается в правильном направлении. По вашему, такая реализация Python в Excel лучше VBA?

    • @Tosha.V
      @Tosha.V 2 หลายเดือนก่อน

      ​​​​@@analyst_klondike если они в 25 ms office lts таки реализуют поддержку python, будет отлично) про vba не скажу ничего плохого, кроме того, что он уже давно перестал развиваться, в перспективе его внедрение в свой какой то проект бессмысленно

  • @ВячеславИванов-с7ю
    @ВячеславИванов-с7ю ปีที่แล้ว

    Спасибо. Подскажите где скачать англо-русский словарь для VBS?

  • @arturshepiev8486
    @arturshepiev8486 3 หลายเดือนก่อน

    А есть курс хороший по VBA ?

    • @analyst_klondike
      @analyst_klondike  3 หลายเดือนก่อน +1

      Конечно! На канале есть полный курс VBA c нуля. Также, в телеграм-канале есть посты с программой обучения VBA: что изучать и в какой последовательности. Ссылка на курс: t.me/analyst_klondike/18

  • @prymotuda9783
    @prymotuda9783 ปีที่แล้ว +1

    Учитывая новости, что Microsoft интегрирует поддержку Python в Excel то плюсы и минусы изменятся

    • @vladig6649
      @vladig6649 ปีที่แล้ว

      Если ЯП Python поддерживает работу с COM-компонентами, на которых построены объектные модели всех приложений пакета MS Office, то на нем можно с успехом работать с этими моделями. Но лучше из VBA запускать модули (приложения) написанные на самом Python'e. Хотя все можно проще сделать на самом VBA.

  • @zsnjA
    @zsnjA ปีที่แล้ว

    Запилили полноценные шарпы вместо vba в excel, все бы кайфовали

    • @analyst_klondike
      @analyst_klondike  ปีที่แล้ว +2

      Да, многие об этом мечтают, но, боюсь, не запилят. На VBA написано много кода и его нельзя просто так взять и бросить.

    • @vladig6649
      @vladig6649 ปีที่แล้ว

      А лучше С++ или какую-нибудь Java и тп. Просто смешно.
      VBA концептуально интегрирован во все приложения MS Office как основной и достаточно простой инструмент разработки. Внутри этих приложений можно работать и на другом ЯП, если он через ActiveX и СОМ-компоненты способен работать с их объектыми моделями.

    • @yuliyi
      @yuliyi 9 หลายเดือนก่อน +1

      Если бы там были шарпы я бы и весь наш офис инженеров МЕХАНИКОВ ( не программистов ) плакали бы горькими слезами

  • @simplyx1489
    @simplyx1489 ปีที่แล้ว +2

    Наверное питон ещё хорош тем, что он есть в Power BI, который велючает и каери и пивот, но получше, свежее

  • @андрейхоменко-и5я
    @андрейхоменко-и5я 5 หลายเดือนก่อน

    Выбирай оба... Как я)))

    • @analyst_klondike
      @analyst_klondike  5 หลายเดือนก่อน

      Отличный выбор!

  • @tamikdgioev7031
    @tamikdgioev7031 ปีที่แล้ว

    Vba для Exsel, все же более предпочтительный, хотя книги и исходники по нему исчезают, Python все же лучше для Liber office VBA есть не только в Excel и в Office... как и Python, и что бы понадобился Python наверное масштаб данных должен выйти за рамки Excel или вообще одного ПК, с другой стороны в новых версиях на сколько знаю планировать использовать javascript...

    • @vladig6649
      @vladig6649 ปีที่แล้ว +1

      Visual Basic for Applications (VBA) это по сути язык программирования Visual Basic (VB) предназначенный для программирования внутри приложений входящих в пакет MS Office с целью разработки на базе их пользовательских приложений. Обьектные СОМ - модели офисных приложений и модели доступа к базам данных на MS Access и MS SQL имеют в своей основе API в синтаксисе VB (VBA). Из любого другого ЯП, работающиего с СОМ-компонентами, можно также успешно работать изнутри с приложениями MS Office. Принципиальным является то, что VBA концептуально интегрирован в MS Office и саму Windows. Существенным преимуществом языка программирования Visual Basic и VBA является их простота, которой обеспечивается ясность и читабельность написанного кода, особенно необходимых для его дальнейшей поддержки.

    • @tamikdgioev7031
      @tamikdgioev7031 ปีที่แล้ว

      ​@@vladig6649 Так и есть, VB для меня никогда не был учебным ЯП, а скорее языком для офисного программирования, и администрирования. Но интегрирован он не только в офис, а где-то в 14 приложений включая WPS Office до 2016 года, можно вроде установить полноценный VBA -7 отдельно, часть которых в новых версиях в принципе поддерживает и Python. Но учитывая что web занимает все больше JS, а разработка развивается в сторону облачных сервисов, скорее всего именно JS займет эту нишу, об это были и слухи в сети, и это видим и в Google docs... И так же JS есть в Libre Office... И есть так же нюансы, в какой-то мере JS и Python сегодня чуть легче выучить, я на пример выбросил книгу Брауна да там есть что взять, но много воды - много плохого перевода. Если и брать эту книгу, то хотя бы оригинал, и информации что в ней принципе не хватит и еще что бы по ней нормально изучить ЯП нужно куда-то установить Win 95 или хотя бы ХР, а учебного материала осталось не много, и что бы разобраться в VBA придется записывать кучу макросов, и после разбираться в коде и реально искать информацию на зарубежных сайтах. Так же IDE 6-й версии построили вокруг VBA, а не VBA из него взяли... И еще интерфейс VBA можно поменять плагинами и сделать более современным duck или duck - duck называется - забыл, хоть и с VBA лучше не злоупотреблять плагинами особенно если макросы или код нужно отправлять куда-то еще, но этот думаю можно использовать, и в принципе с первыми двумя недостатками явно не все так плохо, и с 3 так же, ну от части мало виджетов, от части их можно создать, а от части требуется и не так много, что-то такое есть и для VB... Но уже едва ли найдется в сети, и в принципе не требуется... И по версии 6.0 ничего лишнего написать или ляпнуть не хочу это мой родной ЯП, и дела у ЯП куда лучше, чем принято считать в сети... И альтернатив много, хотя бы те же PoSh и Winform, AutoIT и другие. Так что свое оставлю при себе.

  • @ЯнБоянов
    @ЯнБоянов 4 หลายเดือนก่อน

    Петухон вообще не предназначен для нормальной работы в эксель.

    • @analyst_klondike
      @analyst_klondike  4 หลายเดือนก่อน +2

      Не факт, в ряде задач Python отрабатывает значительно лучше VBA