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

Visual Basic for Applications *

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

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

Автоматизация рутинных операций между Excel и AutoCAD при помощи VBA

Время на прочтение3 мин
Количество просмотров47K
Уже не первый год я встречаю на профильных форумах мнение, что VBA для AutoCAD отмирает, и AutoDesk не будет его включать в следующих релизах в дистрибутив, и вообще, истинные падаваны пользуются lisp, C# и прочим, но только не VBA.

Я инженер-проектировщик ОВиК, не программист. И не хочу, да и некогда, вникать в серьезное программирование. Чаще всего появляется ситуация, что нужно как-то автоматизировать рутину здесь и сейчас. На помощь приходит простой язык VBA.

Далее я покажу, как можно без особых забот сделать самому то, за что серьезные ребята берут не плохие денежки. А именно перенос данных из Excel в AutoCAD и обратно. Заинтересованных прошу под кат.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии9

Как я гонял Балду-2, или в поисках оптимального алгоритма

Время на прочтение8 мин
Количество просмотров11K
Балдология, как оказалось (вы ведь слышали о существовании такой науки, правда?), имеет на Хабре отражение в виде нескольких статей, вот они:

«Алгоритм быстрого поиска слов в игре балда»
«Алгоритм и тактика поиска слов в игре Балда»
«Как я гонял Балду на Visual Basic for Applications для MS Access»

Эта статья — продолжение моей предыдущей, последней в списке. Отправными точками для написания были присланные мне в комментариях ссылки на способ хранения словаря в виде дерева (статья в Википедии с описанием алгоритма Trie), а также упоминание коллеги chibiryaev о его собственной реализации поиска, которая тратит на нахождение слова в словаре из 110 000 элементов всего 16 миллисекунд!

Собственно, задача №1 – увеличение скорости поиска слов в текстовом массиве.
Начнем с реализации алгоритма Trie. Для этого нам необходимо поместить весь словарь существительных (43 303 слова) в структуру связанного дерева. Visual Basic не поддерживает переменных-ссылок, подобно C++ или C# (не говоря уже о Pascal), но в этом качестве вполне подойдут индексы массива.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии6

Чем заняться айтишнику в армии — руководство к действию

Время на прочтение3 мин
Количество просмотров61K
Первая статья вызвала большой резонанс по всему рунету. Сейчас же я хочу немного рассказать про техническую сторону вопроса, а именно — о том, как начать разработку BomberMan в Excel. Исходного кода игры не будет в силу его отсутствия, а будут лишь отдельные пояснения принципов работы.

Методы, описанные в статье, не претендуют на истину в последней инстанции. Я описываю то, как это было сделано мной ТАМ, в местах отсутствия интернета и сильнейшего воздействия на психику.
Читать дальше →
Всего голосов 73: ↑68 и ↓5+63
Комментарии19

Выгрузка условий конкурсов госзакупок с ООС zakupki.gov.ru

Время на прочтение12 мин
Количество просмотров91K
Примечания:
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии8

Истории

Финансы в Excel+VBA. Калькулятор опционов по модели Блэка-Шоулза

Время на прочтение5 мин
Количество просмотров39K
Статья адресована и будет полезна в первую очередь тем, кто начал изучать опционы и хочет разобраться в их ценообразовании. Ну и во вторую очередь тем, кто ещё не использует инструмент VBA в своих расчётах в екселе, но хочет научиться — вы увидите, как это на самом деле просто.
Читать дальше →
Всего голосов 8: ↑5 и ↓3+2
Комментарии4

Как я гонял Балду на Visual Basic for Applications для MS Access

Время на прочтение5 мин
Количество просмотров19K
Не помню, что меня так заело. Наверно, кто-нибудь обыграл меня в Балду с разгромным счетом (ее онлайн-вариант есть на Одноклассниках, Mail.ru и в куче других мест). Короче, я принял вызов. В прошлый раз так было с программкой для разгадки СУДОКУ. Но там все оказалось заметно проще.

image
Балда, она же Волшебный Квадрат. Игроки добавляют на каждом шагу по одной букве, чтобы получилось осмысленное слово как можно большей длины.
Читать дальше →
Всего голосов 29: ↑20 и ↓9+11
Комментарии21

Автоматизация работы в nanoCAD с помощью Visual Basic for Applications

Время на прочтение6 мин
Количество просмотров21K
В статье рассмотрен один из вариантов автоматизации работы проектировщиков в САПР nanoCAD, позволяющий в значительной степени использовать параметризацию построений и сокращать сроки выполнения различных задач.



Многие проектировщики используют MS Excel для выполнения математических вычислений в табличной форме. Однако, функционал программы этим не ограничивается. С помощью встроенного в продукты Microsoft Office языка программирования Visual Basic for Applications (VBA) можно взаимодействовать с объектной моделью nanoCAD (и другими продуктами на её платформе). В данной статье мы на простом и универсальном примере продемонстрируем такую возможность — создадим и настроим слои, начертим прямоугольник, проставим к нему размеры и добавим текст, содержащий значение площади фигуры.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии2

Рассказ о том, как я упростил себе службу в армии при помощи Excel и VBA

Время на прочтение5 мин
Количество просмотров117K
Навеяно постом «Чем заняться айтишнику в армии или как я на VBA игры писал»

imageВ 2004-2006 годах служил я в армии, а конкретнее — в ВВС. После прохождения курса молодого бойца и освоения в новой для меня обстановке мне доверили рабочее место с компьютером. (Надо сказать компьютер по тем временам был не плохой, чему я был рад.)

Определили меня на должность планшетиста командного пункта (КП, наш центральный КП на сколько я знаю, находился под землёй), на деле же я был непойми кем… но занимался обязанностями хронометражиста на Стартовом Командном Пункте (СКП).

Далее кратко, что из себя представляли «Полёты» (так назывался период проведения тренировок, перелетов или стрельб на полигонах) для меня, и как при помощи программирования я немного упростил себе службу в армии.
Читать дальше →
Всего голосов 160: ↑152 и ↓8+144
Комментарии66

Чем заняться айтишнику в армии или как я на VBA игры писал

Время на прочтение3 мин
Количество просмотров183K
Прошло уже больше двух месяцев с момента моей демобилизации. Я уже освоился на свободе, пришло время рассказать интересную историю со службы. Служил я в разведке!.. По распределению попал в центр радиоперехвата. Работенка не пыльная, сидишь ночами в наушниках и слушаешь врага. Но речь пойдет не об этом.

У каждого оператора поста радиоперехвата (таковыми мы числились) был в распоряжении компьютер с подключенными к нему радио-приемными устройствами. На компьютере стоял спецсофт + Excel. Все остальное было заблочено. После N-ного дежурства я стал скучать… Зачесались руки.
Читать дальше →
Всего голосов 282: ↑269 и ↓13+256
Комментарии155

Интеграция MS Excel и Python

Время на прочтение6 мин
Количество просмотров368K
Добрый день, уважаемые читатели.

В сегодняшней статье я хотел бы, как можно подробнее, рассмотреть интеграцию приложений Python и MS Excel. Данные вопрос может возникнуть, например, при создании какой-либо системы онлайн отчетности, которая должна выгружать результаты в общепринятый формат ну или какие-либо другие задачи. Также в статье я покажу и обратную интеграцию, т.е. как использовать функцию написанную на python в Excel, что также может быть полезно для автоматизации отчетов.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии8

50 лет Бейсику!*

Время на прочтение2 мин
Количество просмотров25K
Команда Visual Basic присоединяется к поздравлениям Дартмутского Колледжа и разработчикам по всему миру, чьи жизни затронул этот прекрасный язык, и хочет поздравить Dartmouth BASIC (и, конечно, всё семейство языков Бейсик) с пятидесятилетием!

В нашей команде управляемых языков программирования так много тех, кто начинал свой путь с того или иного диалекта Бейсика, что мы не могли не поностальгировать и не показать привязанность к нашим истокам. В честь 50-летия дедушки Бейсика мы представляем вам QuickVB.

QuickVB основан на платформе .NET-компиляторов Roslyn (доступна в виде Nuget-пакетов), которая была представлена на конференции BUILD в этом году. Чтобы начать работу, просто распакуйте архив QuickVB.zip (ссылка в конце поста) с проектом, затем соберите и запустите проект в Visual Studio 2013. Предварительные версии Roslyn ставить не надо, менеджер пакетов Nuget сам скачает все необходимые зависимости.

Запустив QuickVB, вы увидите среду которая немного похожа на QuickBasic.



Читать дальше →
Всего голосов 103: ↑90 и ↓13+77
Комментарии122

Расширяем возможности MS Excel 2010 c помощью R

Время на прочтение5 мин
Количество просмотров17K
Добрый день, уважаемые читатели.
Сегодня я хочу показать как можно связать возможности языка R и офисного пакета MS Excel 2010. Ниже я расскажу о том, как можно расширить функционал встроенного языка VBA с помощью функций R, а поможет мне в этом надстройка RExcel. Инструкцию по его установке можно без проблем найти в сети или на офф. сайте.

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

Обновляемый многопользовательский макрос

Время на прочтение8 мин
Количество просмотров13K
Я не умею программировать, но очень люблю!
Немного измененная цитата художника Васи Ложкина.
Статьей хочу поделиться опытом поднятия многопользовательской системы на VBA Excel.
На момент принятия решения о создании гибкого приложения, было порядка 7 макросов, работающих по большим объемам (несколько файлов от 20 тыс. строк до 370 тыс. строк), весящих от 50 килобайт до 12 мегабайт, каждый из которых был написан в соответствии со знаниями существующими на момент написания. Каждый макрос изменялся, дописывался, исправлялся в части ошибок, а учитывая, что этими макросами пользовались более 60 человек, не все из которых отслеживали изменения, постоянно дергали меня показывая очередную ошибку, которую я уже исправил и выслал на всех. Объяснять толпе народу как правильно пользоваться макросами, я бросил сразу, так как кто то не услышит, кто то не поймет о чем речь, кто-то возьмет уже отформатированную таблицу в работу с макросами, а я не могу предугадать кто и как изменяет таблицы.

Необходимо было сделать один код, а не 60 копий каждого изменения, высланного по почте.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии0

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Отправка больших файлов в Microsoft Outlook 2010 с помощью VBA и PHP

Время на прочтение5 мин
Количество просмотров15K
Хочу поделиться способом решения проблемы с отправкой больших файлов в Microsoft Outlook 2010 (я думаю с 2013 прокатит тоже).
Итак, исходные условия:
— MS Exchange Server 2010 — inhouse — админ доступа нет — автор просто пользователь
— Ограничения на общий объем писем 10Мб
— Есть пара Linux web-серверов в своем DMZ и админ доступ к корпоративному интранету
Надо:
— Организовать удобный механизм передачи больших файлов (очень больших)
— Не использовать сторонних провайдеров для хранения информации

Первой мыслью было использования сервисов типа dropbox, точнее их self-hosted аналогов типа ownCloud. Однако, разворачивать это все только для аттачментов показалось неадекватным.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии5

Автоматизация работы Microsoft Outlook с помощью VBA на примере создания массовой рассылки писем

Время на прочтение6 мин
Количество просмотров26K
В этой статье я бы хотел поделиться опытом автоматизации офисной, рутинной задачи по отправке сообщений группе клиентов.
Итак, собственно, в чем вопрос: необходимо отправить электронные письма с вложением нескольким десяткам клиентам. При этом в поле получателя должен быть только один адрес, т.е. клиенты друг о друге не должны знать. Кроме того, не допускается установка дополнительного программного обеспечения, типа MaxBulk Mailer и ему подобного. В нашем распоряжении есть только Microsoft Office, а в данном конкретном случае — Microsoft Office 2013.
Читать дальше →
Всего голосов 14: ↑4 и ↓10-6
Комментарии16

RPG-игра в рабочей книге Excel

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


Бухгалтер из Торонто по имени Кэри Уолкин (Cary Walkin) никогда не занимался разработкой компьютерных игр, но в совершенстве освоил Excel. Этого оказалось достаточно для создания RPG-игры, которая работает на макросах VBA, встроенного языка программирования Excel.
Читать дальше →
Всего голосов 133: ↑125 и ↓8+117
Комментарии58

Ускоряем работу VBA в Excel

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

Предисловие


Так уж сложилось, что на сегодняшний день много кому приходится работать(писать макросы) на VBA в Excel. Некоторые макросы содержат сотни строк кода, которые приходится выполнять каждый день (неделю, месяц, квартал и так далее) и, при этом, они занимают изрядное количество времени. Вроде бы и и процесс автоматизирован и человеческого вмешательства не нужно, но время, занимаемое выполнением макроса, может охватывать десятки минут, а то и несколько часов. Время, как говориться, — деньги и в этом посте я постараюсь значительно ускорить время выполнения Вашего макроса и, возможно, это положительно скажется на ваших делах, а в итоге и деньгах.
Читать дальше →
Всего голосов 37: ↑23 и ↓14+9
Комментарии9

О пользе прикладного программирования, или Почему я выбрал непопулярный Visual Basic

Время на прочтение4 мин
Количество просмотров13K
Как у программиста, благодаря стремительному падению цен на память и увеличению скорости вычислений вдвое каждые два года, у вас есть выбор. Вы можете провести шесть месяцев, переписывая циклы в Ассемблере, или провести шесть месяцев, играя на ударных в рок-группе, и в каждом из этих случаев ваша программа будут работать быстрее. У программистов на Ассемблере нет поклонниц.
Joel Spolsky


Всегда задавался вопросом — почему Basic настолько непопулярен в среде отечественных программистов, в то время, как на Западе он имеет значительное распространение. Закрадывалось подозрение, что у нас, на просторах бывшего СССР, все программисты — челябинцы, и пишут прямо на машинном коде, так что писать на таком высокоуровневом языке как Бейсик, у них не получается в силу отсутствия иных клавиш, кроме 1 и 0.

Читать дальше →
Всего голосов 36: ↑9 и ↓27-18
Комментарии19

Обход защиты Runpad Shell

Время на прочтение2 мин
Количество просмотров21K
Доброго времени суток! Попытаемся обойти защиту Runpad Shell'а и получить доступ к управлению диспетчером задач, в этом злодеянии нам помогут макросы на языке VBA встроенные в линейку продуктов Microsoft Office. Теперь более подробнее рассмотрим с чем мы имеем дело.
Читать дальше →
Всего голосов 10: ↑6 и ↓4+2
Комментарии0

Формат XXEncode на VBA, или как загрузить бинарник в документ

Время на прочтение4 мин
Количество просмотров3.7K
При работе в связке Excel+VBA бывает нужно хранить бинарные данные в контейнере, который накладывает ограничения содержимое. Для этих задач был разработан формат XXEncode. И вот, допустим, Вам захотелось иметь необходимые библиотеки и утилиты, связанные с вашим проектом VBA всегда при себе, внутри Рабочей книги .xls. Ниже я покажу, как я реализовал у себя хранение бинарных файлов в комментариях стандартных модулей проектов VBA.
Читать дальше →
Всего голосов 6: ↑3 и ↓30
Комментарии5