Как добавить VBA в MS Office?


21

Я видел посты с ответами, в которых используется код / ​​макросы VBA ( Visual Basic для приложений ), однако впоследствии я также отметил дополнительные комментарии о том, как использовать VBA (как реализовать и выполнить его). Я надеюсь, что это поможет просто выполнить код.

Итак, мой вопрос:

У меня есть некоторый код VBA. Как добавить VBA в проект MS Excel, Word или Outlook?


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

Связанный: superuser.com/q/794590/346288 - простой «кикстарт» для отладки кода VBA.
Ханну

Ответы:


19

Чтобы открыть редактор VBA в любом продукте Microsoft Office 1 , нажмите Alt+ F11.

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

Если первое, взгляните на Project Explorer и найдите проект, связанный с файлом, над которым вы сейчас работаете.

Если вы хотите, чтобы ваш код запускался событием, связанным с конкретным листом (например, код должен запускаться каждый раз, когда значение изменяется на Sheet1), вам нужно дважды щелкнуть этот конкретный объект листа, указанный в Project Explorer. Откроется текстовое поле, в которое вы можете вставить код. Если событие связано со всей книгой, а не с конкретным листом (например, код должен выполняться при сохранении книги), дважды щелкните ThisWorkbookобъект в проводнике проекта.

Однако, если вы не хотите, чтобы ваш код вызывался событием, вам нужно поместить код в модуль. Если в документе или рабочей книге есть другой код, например, из записанного макроса, он появится в модуле. Если существует существующий модуль, в большинстве случаев вы захотите вставить свой код в тот же модуль под любым существующим кодом. Существующие модули будут перечислены в Project Explorer.

Если модуль не существует, вам нужно будет вставить новый. Для этого выберите Moduleиз Insertвыпадающего меню окно редактора VBA. Это вставит новый модуль и отобразит текстовое окно внутри окна редактора. Вставьте туда свой код.

Если вы хотите выполнить код в модуле, у вас есть несколько вариантов. Одним из них является запуск кода из окна редактора VBA. Вы можете просто поместить курсор где-нибудь в коде, который вы хотите запустить, и нажать F5или нажать кнопку Значок «играть» - зеленый треугольник, направленный вправо(Выполнить) на панели инструментов под строкой меню, чтобы выполнить код.

Другой вариант - использовать Macrosдиалоговое окно. Чтобы открыть его, выполните одно из следующих действий:

  • на Viewвкладке ленты, в Macrosпанели (справа), нажмите Macrosкнопку
  • на Developerвкладке, в Codeпанели (крайний левый), нажмите Macrosкнопку
  • нажмите Alt+F8

Диалоговое окно выглядит так:

введите описание изображения здесь

В приведенном выше примере, вы можете запустить с YourCodeпомощью

  • выберите его из списка и затем нажмите Run, или
  • выбрав его из списка и дважды щелкнув по нему.

______
1 Как я могу использовать VBA в Excel 2010 Starter Edition? , вы не можете использовать VBA в Excel 2010 Starter Edition.


4

Эти шаги выполняются с использованием Office 2010 (если не указано иное), но они должны быть достаточно похожими для 2007 и 2013 годов. Я делаю это с Excel, но различия должны быть тонкими.

Первый шаг - добавить вкладку «Разработчик» на ленту.

В Office 2007

  1. Нажмите «Офисное меню» -> « (Программа) ». («Офисное меню» относится к Офисная кнопкакнопке в левом верхнем углу.) Это вызывает меню, в нижней части которого находятся кнопки «Параметры Excel», «Параметры Word» и т. Д.

  2. В диалоговом окне параметров установите флажок «Показать вкладку« Разработчик »на ленте» Офисное меню и нажмите «ОК».

  3. Ваша новая вкладка «Разработчик» должна отображаться.

В Office 2010 и 2013

  1. Нажмите Файл -> Параметры .

  2. Выберите « Настроить ленту» .

  3. С правой стороны найдите Developer и установите флажок. Нажмите ОК .

  4. Ваша новая вкладка должна отображаться, нажмите на нее, а затем нажмите на Visual Basic .

Отображается сложный экран, который является окном редактирования кода VBA.

Примечание : Вы также можете открыть окно редактирования кода VBA с помощью сочетания клавиш Alt+ F11(даже если вкладка «Разработчик» не отображается).

Внутри окна редактирования кода, слева вы должны иметь панель Project-VBAProject. При этом под объектами Microsoft Excel (это имя отличается в зависимости от того, какую программу (Word, Outlook и т. Д.) Вы используете) является «вещь» под названием ThisWorkbook. Дважды щелкните на ThisWorkbook

В этом примере мы будем использовать следующий код.

sub WarnMeOfDanger()
   MsgBox "Argh, a dragon is behind you!"
end sub 

Все вышеперечисленное - это открыть диалоговое окно, чтобы показать сообщение на экране.

Скопируйте код и вставьте его в белый лист в окне редактирования кода VBA.

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

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

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

Находясь на ленте разработчика, нажмите « Вставить» и выберите первый элемент - кнопку. Ваш курсор мыши становится немного крестиком (не злой, я имею в виду его внешний вид). Нарисуйте размер кнопки. Появится новое окно, и оно должно показать нам возможность назначить кнопку функции. В этом случае мы должны увидеть что-то вроде ThisWorkbook.WarnMeOfDanger. Нажмите на это и нажмите ОК .

Теперь, если вы нажмете новую кнопку, появится сообщение. Щелкните правой кнопкой мыши по кнопке, чтобы получить опции для ее перемещения, изменения текста, изменения размера и т. Д.


Вопрос и ответ от одного человека? Странно .......
Прасанна

2
@Prasanna, когда вы задаете вопрос, у вас есть возможность ответить на него сразу. Помните, это сайт вопросов и ответов, поэтому, пока он актуален и полезен, я думаю, что он принят. Есть несколько таких вокруг.
Дейв

Я не знал этого до сих пор. Спасибо за информацию
Прасанна

2
Вы можете заменить первые несколько шагов для доступа к окну кода простым «Alt + F11». :)
Ƭᴇcʜιᴇ007

@ Ƭᴇcʜιᴇ007, не стесняйтесь редактировать подальше :) +1
Дэйв
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.