Ресурс документации для разработчиков Office VBA
Где я могу найти полезную документацию для программирования на VBA? что-то вроде SitePoint для разработки HTML. MSDN просто перечисляет и описывает работу и свойства / методы классов вместо того, чтобы объяснять, для чего они используются или когда их использовать.
Книги также приветствуются.
4 ответа
Я работал с Excel/VBA в течение последних двух лет и был очень разочарован качеством базовой документации. Файл справки почти ничего не стоит. Версия MSDN того же лучше, потому что она имеет лучшие внутренние ссылки, но все еще довольно тонкая. Вот некоторые ресурсы, которые я нашел полезными:
Написание макросов Excel с VBA, 2-е издание Стивена Романа. В главах 5-8 подробно рассказывается о языке (фрагменты можно найти в Google Книгах):
http://www.amazon.com/Writing-Excel-Macros-VBA-2nd/dp/0596003595#noop
Руководство программиста VB 6.0, которое в основном относится и к VBA:
http://msdn.microsoft.com/en-us/library/aa716285(VS.60).aspx
Существуют также различные веб-сайты консультантов по "гуру" в Excel, на которых есть много примеров. Многое из этого передано Excel вообще или непрограммистам, но все же может быть весьма полезно для восприятия VBA в целом. В частности, два таких сайта принадлежат Чаку Чипу Пирсону и Чарльзу Уильямсу:
http://www.cpearson.com/excel/mainpage.aspx
http://www.decisionmodels.com/
Я собирался напечатать уничижительный комментарий о том, что я никогда не нашел спецификацию языка VBA, но я решил, что Google снова ее и о чудо, всего лишь год назад:
http://msdn.microsoft.com/en-us/library/dd361851(PROT.10).aspx
Это может содержать ответы на некоторые вопросы, которые я решил только путем экспериментов и кодирования результатов в виде модульных тестов...
Если вы находите документацию MS, один из подходов заключается в использовании макро-рекордера. Он не будет генерировать высококачественный код, но если вы записываете действия, которые должна выполнять ваша программа, и просматриваете код, сгенерированный ею с помощью F1, на любом объекте, на который вы хотите взглянуть глубже, это может стать хорошим началом. Вы просто должны использовать немного здравого смысла и очистить код макроса после.
Какие-либо конкретные объектные модели, которые вас интересовали (объектная модель Excel, модель доступа и т. Д.) Или все они? У меня была копия Excel 2003 VBA от Wrox, которая была довольно приличной, они обновили ее для Excel 2007 (хотя я не верю, что будет разница между версиями 2003 и 2007, так как расширение VBA было запущено несколько лет назад и там был толчок к переходу во ВСТО).
В качестве общего справочника по VBA лучше выбрать хороший ресурс VB6, поскольку, если я правильно помню, VBA является подмножеством языка VB6. Что-то вроде Профессионального Справочника по Visual Basic 6 Справочник было бы хорошо.
РЕДАКТИРОВАТЬ:
Страница MSDN Visual Basic для приложений выглядит как хорошая отправная точка для ресурсов. Вот языковые ссылки
Да, документация, специфичная для VBA и MSOffice, перешла от едва стоящей ценности в более старых версиях библиотеки MSDN к совершенно непригодному для использования дерьму.
Какой-то идиот решил, что было бы ХОРОШО (TM), чтобы отделить объекты, методы и свойства, вместо этого рассматривая каждый из них как независимую, автономную концепцию. В старые добрые времена вы могли найти класс объекта (скажем, "Range" для excel), щелкнуть ссылку "Свойства" или "Методы", чтобы увидеть, какие p или m были поддержаны для этого класса, и что они сделали специально для этого. учебный класс.
Теперь все, что мы получаем - это общее описание класса, без ссылки на его свойства и методы. Свойства и методы перечислены в алфавитном порядке как их собственная общая сущность, отдельная от классов объектов.
Таким образом, при программировании нет простого способа узнать, как ИСПОЛЬЗОВАТЬ объектный класс. Какие методы доступны? Какие свойства? Что они делают? Мы больше не знаем...