С чего начать с VBA и программированием макросов в Word 2007? - PullRequest
5 голосов
/ 09 июля 2010

Я только что узнал, что макросы в Word / Excel / PowerPoint можно программировать. Это потрясающе, потому что у меня есть документ Word с 70 таблицами для стиля.

Я программист, но я не знаю VB, VBA или VB .NET. Я запутался с этими тремя. Я знаком с программированием на .NET с использованием C #. Теперь я хочу написать новые макросы. С чего мне начать? Что такое VB, VBA, VB.NET и что мне следует изучать? Пожалуйста, предложите какой-нибудь материал.

Если я изучу Word 2007, поможет ли это другим приложениям Office Life Excel & PowerPoint?

Ответы [ 3 ]

5 голосов
/ 09 июля 2010

Вот краткое объяснение различных Visual Basic:

  • Visual Basic 6 (VB6 или классический VB)
    • Выпущенный примерно в 1998 году, это была последняя итерация оригинального Microsoft"Visual Basic."У него есть начало объектно-ориентированной разработки, но для запуска приложений требуется среда выполнения Visual Basic.Многие компании использовали VB6 для внутренних бизнес-приложений.Он был заменен VB.NET и .NET Framework.
  • Visual Basic для приложений (VBA)
    • VBA использует ту же кодовую базу, что и VB6, и в 1996 году былдоступны для лицензирования для разработчиков, чтобы включить в свои собственные приложения.Вот как VBA отображается в Microsoft Office как встроенный язык, который можно использовать для управления различными приложениями Office.Важно помнить, что VBA, который до сих пор используется для кодирования офисных приложений, уже более десяти лет, и он может чувствовать себя таковым, когда привык к работе с .NET.
  • Visual Basic.NET (VB.NET)
    • VB.NET был радикальным отходом от VB6.Хотя многие разработчики последовательно упоминали о последующих итерациях VB.NET (например, VB7, VB8 и т. Д.), VB.NET имеет очень мало общего с VB6 и VBA, кроме синтаксиса BASIC.Многие считают это скорее новой эволюцией в Бейсике, чем эволюцией в Visual Basic.Поскольку он полностью отличается от VBA и VB6, вы не можете использовать код VB.NET непосредственно в VBA.
    • Поскольку код VB.NET компилируется в тот же код управляемого языка промежуточного уровня, что и C #, и использует те же API .NETс точки зрения программирования вы можете почувствовать больше сходства между C # и VB.NET, чем VB6 и VB.NET.

Если вы планируете много заниматься разработкой на VBA, яочень рекомендую Руководство разработчика VBA, второе издание , написанное Гецом и Гилбертом.

Изучение синтаксиса VBA для Word, безусловно, поможет вамкогда вы переходите на использование Excel, Access и т. д. Однако каждое приложение имеет свой собственный API, который предоставляет набор объектов и методов, уникальных для его домена.Например, я очень хорошо знаком с программированием на VBA в Excel и Access, но я никогда не занимался макропрограммированием в Word.Хотя синтаксис кода был бы одинаковым, мне пришлось бы изучить API Word, чтобы иметь возможность программировать его.

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

5 голосов
/ 10 июля 2010

Здесь есть несколько хороших ответов - я хотел бы предложить еще один набор предложений:

Во-первых, если поддерживается в вашей среде, вы можете использовать Visual Studio 2005/8/10 и свои навыки C #программировать на Office с помощью "Visual Studio Tools for Office".См. Эту ветку для получения более подробной информации.

Если вы хотите вместо этого углубиться в VBA (что мне лично нравится, потому что разработка идет быстрее по сравнению с VS), начните с этой статьи Десять преобразований кода для VBA, Visual Basic .NET и C # , которые покажут вам образцы всех трех языков.Затем посмотрите эту веб-трансляцию: Использование Visual Basic для приложений (VBA) каждый день проще, чем вы думаете .

В-третьих - MSDN, прочитайте это: Начало работы с VBA в Word 2010 .99% этого относится к Word 2007. С этой статьей связано много других статей, или вы всегда можете перейти на главную страницу Office VBA Developer Center в виде одной страницы перехода.

Тогда, возможно, пришло время начать программировать напрямую.Посмотрите, как все работает, изучите объектную модель Word и т. Д. Вы всегда можете просмотреть SO под тегом word-vba , чтобы увидеть, что другие люди пытаются делатьи ответы.

2 голосов
/ 09 июля 2010

У вас всегда есть MSDN .
Если вы перейдете в Microsoft Word> Разработчик> Visual Basic и откроете ThisDocument в левом меню, у вас будет редактор. Если вы нажмете F2 , вы получите библиотеки, которые можно использовать в Microsoft Word (обозреватель объектов). Самая простая программа будет следующей:

Sub Hello()
    MsgBox "Hello World"
End Sub

Когда у вас есть пометка, нажмите F5 (для запуска).

В обозревателе объектов у вас будет три разных объекта, свойства, функции и события. Когда вы видите что-то, что вас интересует, перейдите к справочнику для слова vba и найдите его.
[Если ссылка изменяется, ее можно найти в дереве в разделе Библиотека MSDN> Разработка Office> Система Microsoft Office 2007> Word 2007> Справочник разработчика Word 2007> Справочник по объектной модели Word]

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

...