Как начать работу с Visual Basic для приложений?

38

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

Я администратор офиса (прежде всего клерик), и один из наших макросов в Microsoft Excel сломался сегодня (я извиняюсь, если это описание заставляет меня звучать как "немой пользователь" ). Наш менеджер назвал наш ИТ-отдел, и они отправили 2 программиста. Первый парень был милым и спросил, не заинтересована ли я в том, чтобы посмотреть, как он исправит проблему, - но второй парень заговорил и сказал: "Она просто клерикала, она ее никогда не получит".

Да, это больно, но, чтобы сделать длинный рассказ коротким, я спросил своего мужа (который является программистом perl), что я мог бы сделать, чтобы показать этим парням, из чего я сделан, и он рекомендовал что-то названное "VBA" , потому что я много работаю с Microsoft Office. Он не был уверен, что "VBA" был прав, поэтому он рекомендовал мне участвовать в сообществе на этом сайте (он говорит, что он найдет много ответов на вопросы здесь).

Я исследовал "VBA" на google, но есть буквально ТЫСЯЧИ результатов. Я просто хочу иметь возможность записывать и редактировать макросы для продуктов Microsoft Office, и, возможно, получить достаточно хорошее, чтобы показать, что программист я не просто "глупая женщина-администратор". Может ли кто-нибудь из вас прокомментировать ваши советы по следующим пунктам?

  • Является ли "VBA" фактически тем, что я ищу для создания макросов и автоматизации?
  • Если не "VBA" , то какая более подходящая отправная точка?
  • Хорошая книга или веб-сайт с уроками?
  • Что-нибудь еще, что вы считаете полезным? Предлагают ли они классы колледжа для таких вещей?
  • 1
    Разве это не должно быть на programmers.stackexchange.com
  • 0
    вопрос касается определенного языка (VBA). Это не субъективно (4 кратких пункта). Я счастлив оставить это здесь
Показать ещё 8 комментариев
Теги:

14 ответов

19

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

Лучший способ (ИМО) справиться с такими вещами - рассказать грубым "оставить мой офис [/cable/whatever], сейчас. Нет обсуждения", затем поговорите со своим боссом о том, как он взаимодействует с его коллегами.

Если его босс не даст вам удовлетворительного ответа, возьми его с ЕГО боссом. И т.д., пока вы не дойдете до генерального директора, если это необходимо.

Если кто-то из вашей команды не считает, что поведение, которое вы описываете у программиста # 2, является проблемой, вам нужно подумать о том, достойна ли ваша компания вашим конкретным набором навыков.

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

... Но, если вы не "программист с естественным прирожденным характером", не пытайтесь закрепить свою круглую привязку в квадратное отверстие.

Если бы это был я, я бы сосредоточился на том, чтобы быть администратором офиса, который когда-либо видел. О, еще один намек: если босс № 2 не даст вам удовлетворительного ответа, попросите ВАШЕГО босса взять его с собой. Объясните, что вы не думаете, что люди должны подвергаться такому поведению в цивилизованном обществе. Опять же, если он не откроет вашу жалобу, вы должны решить, собираетесь ли вы работать в этой компании.

Удачи!

Оставьте комментарии, сообщив нам, как это получится.

  • 9
    +1 за признание того, что изучение крошечного VBA не поможет; на самом деле, будет еще хуже. Если вы хотите изучать VBA для своей выгоды, то сделайте это. Но не делайте этого по причинам, изложенным в этом вопросе.
  • 1
    +1 Я согласен с тем, что изучение VBA не поможет с чужим плохим поведением и может даже возбудить его. Почему кто-то должен быть чем-то плохим для других социальных навыков? Изучите VBA для себя, если вы хотите автоматизировать некоторые из ваших работ, и вы находите программирование интересным. Иначе, будь тем, кто ты есть, сосредоточься на своих сильных сторонах и познай себя, создав таким образом чувство собственного достоинства. Каждый может быть экспертом в своей области.
10

VBA означает Visual Basic для приложений. Я рекомендую прочитать статью Википедии об этом, а затем проверить некоторые видеоуроки, например этот. Мне также нравится сериал "Для чайников" , когда вы хотите узнать о чем-то, к которому вы никогда не прикасались. Когда у вас есть конкретные вопросы, вы можете опубликовать их на этом сайте.

8

Если вы обладаете разумным опытом работы с VBA, вам не придется вызывать ИТ по этим вопросам. Это может быть против вашей политики компании, но я оставлю эту этическую дилемму вам. Если бы я хотел узнать VBA, я бы изучил эти три книги в порядке

VBA for Excel for Dummies (Walkenbach)
Power Programming for Excel VBA (Walkenbach)
Professional Excel Development (Bullen, Bovey, et al)

Одновременно с этим исследованием вам нужно начать решать реальные проблемы. Перейдите на сайт social.msdn.microsoft.com и начните читать форумы VBA. Ответьте на любые вопросы. Те, которые вы не можете, дождитесь, пока кто-то еще ответит на него, затем воспроизведите проблему и решение, чтобы вы это знали. Сделайте то же самое с вопросами stackoverflow, выполнив теги vba. Если любой вопрос кажется слишком сложным, просто пропустите и перейдите к следующему.

Прочитайте блоги Excel VBA http://www.dailydoseofexcel.com/dicks-blogroll/ Начните с http://datapigtechnologies.com/blog/ и http://blog.contextures.com/. Они не просто VBA, но они очень хорошо написаны.

Вот что будет: через 3-6 месяцев вы обнаружите совершенно новый мир. Вы написали простые макросы для себя и своих коллег, которые избавят вас от тяжелой работы с вашего дня. Вы начнете искать расточительный процесс, который вы можете устранить простым кодом. Через 6-12 месяцев вы станете достаточно опытным. Вам не понадобится IT, чтобы исправить мелкие проблемы для вас. Вы станете личным представителем Excel в своем офисе (обучение VBA сделает вас лучше в Excel). Вы помогли бы тысячам людей здесь и на форумах msdn, помогая себе.

Через 2 года вы, вероятно, начнете узнавать MS и сообщество в качестве эксперта. Вам будет больно отвечать на одни и те же вопросы снова и снова на форумах, чтобы вы начали блог и направляли туда людей. У вас будут аргументы с вашим мужем о том, является ли VBA "настоящим" языком, но он будет тайно гордиться вами за то, что вы достигли. Через 5 лет вы соавтор книги Excel, оставите свою работу консультантом Excel и научитесь С#. YMMV, конечно.

  • 0
    Это, безусловно, самый подходящий ответ на этот вопрос: «Если вы достаточно опытны в VBA, вам не придется обращаться к ИТ-специалистам по этим вопросам».
7

VBA (Visual Basic для приложения) - это то, на что вы смотрите, если вы заинтересованы в макросах...

По-моему, гораздо легче понять, есть ли у вас хороший опыт работы в Ms-Office, хотя для его освоения вам могут потребоваться некоторые навыки программирования.

Простой способ узнать начать с проблемы. Возьмите проблему в руке и попытайтесь записать макрос для автоматизации своей задачи... Затем вы можете взглянуть на то, что записано в редакторе Visual Basic в Ms-Office Suite...

Попробуйте прочитать и понять каждую строку кода, которая была создана как ответ на ваши действия... Сначала все будет греческим и латинским... Но если вы продолжите это делать, вы легко поймете это без время...

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

Хорошо провести время.

3

Все комментарии замечательные, я хотел сделать одну небольшую точку.

VBA - это лекарство для шлюза. ASP classic и VB6 имеют почти одинаковый синтаксис. Я портировал код от одного к другому с минимальными изменениями.

У VB.NET есть аналогичный синтаксис. Это означает, что, изучая VBA, вы сможете не только изучать VBA, но и затем использовать эти навыки, чтобы делать гораздо больше, чем вы когда-либо считали возможным. Вы даже можете узнать, что у вас есть естественная близость к программированию, и преследовать его как карьеру.

Кто знает, вы можете однажды стать грубым программистом-боссом. Это было бы смешно иронично.

  • 1
    VBA был первым языком, который я выучил и увлек меня программированием; теперь я разработчик
  • 0
    Я научился программировать на цветном компьютере 2 из Radio Shack. Но я изучил программирование на основе событий в VBA. Я работал разработчиком в течение девяти лет. Теперь я администратор.
3

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

VBA означает Visual Basic для приложений и является средством макро/автоматизации, которое поставляется с Office (макрос, о котором вы говорите в своем сообщении будет записано в VBA).

VBA звучит как идеальное совпадение:

  • VBA ориентирована на нетехников и поэтому предназначена для прощения и легко подбирается.
  • Google содержит множество информации по этому вопросу, всех целевых людей в вашей ситуации (люди без технической поддержки, которые просто хотят создать макрос Office, который им помогает).
  • Использование Office каждый день даст вам возможность использовать и практиковать то, что вы узнаете.
  • У VBA есть фантастическая функция записи макросов, которая невероятно полезна (особенно когда вы пытаетесь изучить VBA).

Как я уже сказал, Google имеет множество информационных и вводных статей по этому вопросу (например, Начало работы с помощью VBA, чтобы выбрать хороший внешний вид пример). Я рекомендую прочитать один из них, чтобы получить быстрый обзор, а затем просто пойдите и посмотрите, что вы можете сделать:

  • Используйте макрорекордер! Если вы не можете решить, как это сделать, просто запишите макрос, который вы делаете, и посмотрите, можете ли вы понять, как это сделать из кода, который он генерирует.
  • Дайте себе проблемы для решения.
  • Задавайте вопросы здесь!: -)

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

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

Удачи!

3

Я думал, что поделился своим опытом в том, как я узнал макросы VBA в Excel (главным образом) и Access.

Мне нужно было автоматизировать множество задач в Excel, и я знал все о записи макросов. Вы можете записывать макросы из меню Tools | Macros в Excel 2003 (я не уверен, что это такое в 2007/2010 году).

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

Я бы потом немного их отредактировал и посмотрел, что произошло. Если мне нужно было что-то сделать, и я не был уверен, как это сделать, я бы искал помощь или Google и нашел отличные ответы по всему Интернету.

Теперь я работаю разработчиком VBA, и у меня часто есть вещи, которые мне нужно выяснить. Наличие сильного фона в компьютерах и приложениях Office (особенно Excel) помогут. Наличие мужа, делающего Perl, будет означать, что вы можете спросить его об общих вещах программирования, таких как синтаксис и переменные, а также концепции программирования, которые могут потребовать дополнительного объяснения. Я программировал до и после, поэтому эти понятия не были для меня новыми.

Удачи и не забывайте задавать кучу вопросов о переполнении стека, и вы будете Pro в кратчайшие сроки.

3

На самом деле я начал программировать, записав макросин Excel и просмотрев код, созданный рекордером. Выясните простую задачу, а затем запишите макрос. Запись макросов в Excel 2007 можно найти на вкладке "Вид" под кнопкой "Макросы" справа. Одна из моих первых задач, которые я выяснил, это отфильтровать несколько строк данных с помощью автофильтра, а затем распечатать отфильтрованный раздел. После печати я удаляю фильтр и выбираю ячейку A1.

Перед записью макроса выведите каждый щелчок мыши по порядку. Каждый раз, когда вы нажимаете или набираете макрос, записывайте его. Так что уменьшите записанный фрагмент, репетируя макрос. Вы могли бы даже выписать, от руки, игра script, как в бейсбольной игре. Не беспокойтесь о том, сколько времени требуется для записи. У рекордера нет понятия времени. Чтобы лучше понять VBA, запишите макрос несколько раз. Бросьте дополнительный клик и посмотрите, что он делает. Сравните код в каждом макросе. Чтобы перейти к просмотру кода макроса с той же кнопкой, упомянутой выше. выберите макрос и отредактируйте его. Когда вы почувствуете, что адвенчуры модифицируют код в редакторе. ВСЕГДА записывайте и воспроизводите на копии документ, а не реальную вещь. Таким образом, вы можете удалить файл, если он портится. FYI - кнопка остановки макроса часто находится в левом нижнем углу окна Excel.

Счастливое обучение, --J Man

2

Много полезных ресурсов, упомянутых в предыдущих статьях. Да! VBA - это то, в чем вы можете закодировать логику макросов. Я просто хотел бы добавить мою статью о макросах MS Word/Excel. Здесь упоминаются некоторые из основных и сложных урок.

2
  • Да. VBA означает Visual Basic для приложений.
  • VBA - это то, что вы хотите, если вам интересно узнать, как автоматизировать офисные приложения.
  • Я рекомендую книгу John Walkenbach. В частности, программирование питания с помощью VBA.
  • Не знаю о классах колледжей, но вы, вероятно, не нуждаетесь в одном: я уверен, что Power Programming предполагает нулевой опыт программирования. (Но прошло много времени с тех пор, как я прочитал его.)

Имейте в виду, может потребоваться некоторое время, прежде чем вы поймете достаточно понятий, чтобы произвести впечатление на своих коллег. Удачи. И помните, всегда есть такие рывки. Не позволяйте им добраться до вас.:)

1

В ответ на ваши вопросы...

  • VBA - это язык, который используется для автоматизации офиса. Как сказал Иордан, это означает, что Visual Basic (for) Applications
  • VBA является подходящей отправной точкой, если вы просто хотите произвести впечатление на офис Dev. Если вы действительно хотите научиться программировать (как делает ваш муж), тогда начните изучать другой язык под названием С++, но будьте осторожны... его беспокойный материал. Я предлагаю вам google фразу "STarting out with VBA" или "VBA для начинающих" и тому подобное. Вы найдете полезные пособия
  • Вместо того, чтобы искать книгу и изучать ее все, задайте себе такую ​​задачу, как "Создайте макрос, который найдет все ячейки в электронной таблице, в которой есть мое имя, и замените их" я WIN ". Вы быстро придумаете более конкретные вопросы, когда попробуете это.
  • Предлагаются классы, большинство классов в Excel и других офисных курсах предлагают расширенный раздел для макропрограмм
  • Задайте конкретные вопросы. Вместо того, чтобы спрашивать: "Как мне написать эту программу" спросить ", как я могу найти конкретную ячейку в электронной таблице". Вы получите гораздо лучшие ответы таким образом.
0

вам лучше получить копию MS Office и начать использовать MS Excel. Ms Excel, а также MS Word позволяет управлять электронными таблицами и документами с помощью VBA.

Откройте MS Excel и выполните требуемую задачу во время записи макроса. Макросы - отличное место для начала обучения VBA. В фоновом режиме все эти макросы хранятся в формате VBA. Вы можете записывать столько же, сколько Макросы в своих повседневных задачах. Таким образом, вы будете более эффективны в выполнении задачи через MS Excel, а также сможете узнать больше о макросах и VBA. Скоро вы научитесь переделывать макросы для достижения лучших результатов.

0

Многие полезные ресурсы здесь для VBA, одна из наиболее полезных точек, однако, заключается в том, что при включении Macro Recorder в Excel созданные макросы являются кодом VBA. Excel огромный, пытаясь узнать все нюансы VBA, займет достаточно времени, OTOH записывает макрос, занимает несколько секунд, и вы получите краткое представление о том, как работает язык.

0

Обратите внимание, что существует множество стилей VBA, поскольку код из Excel/VBA будет отличаться от кода в Access/VBA. Причина в том, что использование отличается (ячейки против баз данных). Посмотрите vb-helper для книг, ссылок и кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню