Как научиться писать макросы?

Многие мне задают вопрос - как научится эффективно работать в Excel, и самому писать макросы для автоматизации своих задач?

Ответить на этот вопрос однозначно не получится - как и при обучении любому другому предмету, что одному даётся легко, другому при всём желании не осилить.

Тем не менее, постараюсь дать несколько советов (и высказать своё мнение на этот счёт), исходя из личного опыта.
(можете также почитать, как я сам набирался опыта в программировании)

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

1. Учитесь на задачах, автоматизация которых поможет вам в работе

Можно, конечно, и просто читать всякие учебники, воплощая в виде макросов те задания, что предлагаются авторами, но... интерес к обучению может быстро исчезнуть (поскольку подсознательно вы будете понимать, что бОльшая часть изученнного в ближайшее время вам точно не пригодится), да и мотивация к обучению в этом случае гораздо ниже (сравните - или у вас на глазах заметно упрощается ваша повседневная работа, или же вы изучаете каких-то сферических коней в вакууме)

2. Пользуйтесь макрорекордером (записью макросов), упрощая и оптимизируя полученный в результате код

Не всегда, конечно, макрорекордер записывает все произведённые действия (особенно этим грешит Excel версии 2007), но в большинстве случаев, результата записи макроса достаточно, чтобы понять, в каком направлении следует двигаться.

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

Правилам оптимизации кода, вышедшего из-под пера макрорекордера, вскоре будет посвещена отдельная статья.

3. Поисковые системы - ваши лучшие помощники на пути к профессионализму.

Если вы столкнулись со сложной задачей, и не знаете, с какой стороны подойти к её решению, - первым делом отправляйтесь в поиск. (можно, конечно, искать ответ в книжках, но на это уйдет во много раз больше времени)

Например, вам понадобилось получить список файлов из выбираемой пользователем папки. Логика подсказывает, что надо сначала в диалоговом окне запросить путь к папке, а потом загрузить перечень имен файлов из этой конкретной папки.

Что я делаю, когда сталкиваюсь с подобной проблемой? В первую очередь, обращаюсь к Яндексу за советом. (Яндекс мне нравится больше, нежели Google - потому я им и пользуюсь. Каким именно поисковиком пользоваться - выбирать вам, разницы большой нет, - тут многое зависит от умения составлять поисковые запросы)

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

Обратите внимание - в поисковых запросах на первом месте используется ключевое слово VBA, чтобы в результат выдачи не попал код на других языках программирования. (можно также использовать ключевое слово VB6 или VB, но не факт, что результаты поиска вас устроят. Особенно это касается слова VB - в поисковой выдаче будут результаты и для языка VB.NET, который несовместим с VBA). Если же мы ищем что-либо, касающееся непосредственно приложения Excel (например, как сохранить картинки с листа Excel в файлы), то лучше в начале строки запроса использовать 2 ключевых слова: Excel VBA сохранить изображения в файлы

4. Изучайте объектную модель Excel - её понимание заметно ускорит ваше обучение

 

 

 

 

<продолжение следует...>