Ресурс документации для разработчиков Office VBA
Где найти полезную документацию для программирования VBA? что-то вроде SitePoint для разработки HTML.
MSDN просто перечисляет и описывает операцию и свойства/методы классов, а не объясняет, для чего они используются, или когда их использовать.
Книги также приветствуются.
Ответы
Ответ 1
Я работаю с Excel/VBA в течение последних двух лет и очень разочарован качеством базовой документации. Файл "help" почти бесполезен. Версия MSDN для одной и той же вещи лучше, потому что она имеет лучшие внутренние ссылки, но все еще довольно тонкая. Вот некоторые ресурсы, которые я нашел полезными:
Написание макросов Excel с VBA, второе издание Стивена Романа. Главы 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 в целом. Два таких сайта, в частности, из Chuck Чип Пирсон и Чарльз Уильямс:
http://www.cpearson.com/excel/mainpage.aspx
http://www.decisionmodels.com/
Я собирался напечатать пренебрежительный комментарий о том, как я никогда не нашел спецификацию языка VBA, но я решил, что снова буду использовать Google, и вот, примерно год назад:
http://msdn.microsoft.com/en-us/library/dd361851(PROT.10).aspx
Это может содержать ответы на некоторые вопросы, которые я разрешил только путем экспериментов и кодирования результатов в виде модульных тестов...
Ответ 2
Любые конкретные модели объектов, которые вас интересовали (объектная модель Excel, модель объектов доступа и т.д.) или все из них? У меня была копия Excel 2003 VBA от Wrox, которая была довольно приличной, они обновили ее для Excel 2007 (хотя я не считаю, что была бы разница между версиями 2003 и 2007 годов, так как продление VBA было вытащено несколько лет назад, и появилась попытка переместиться на VSTO).
В качестве общей ссылки VBA вам лучше всего подобрать хороший ресурс VB6, поскольку, если я правильно помню, VBA является подмножеством языка VB6. Что-то вроде Профессиональная ссылка для Visual Basic 6 для программистов была бы хорошей.
EDIT:
Страница MSDN Visual Basic для приложений выглядит хорошей отправной точкой для ресурсов. Вот Ссылки на язык
Ответ 3
Если вы находите документацию MS, один из подходов - использовать макрорекордер. Он не будет генерировать высококачественный код, но если вы запишете действия, которые вы хотите, чтобы ваша программа взяла, и просмотрите код, который он генерирует с помощью F1, на любом объекте, который вы хотите посмотреть глубже, это может быть хорошим началом. Вам просто нужно использовать немного здравого смысла и очистить макрокод после.
Ответ 4
Да, VBA и документация, специфичная для MSOffice, перешли от малозначной версии в более ранних версиях библиотеки MSDN, теперь полностью непригодной для использования shite.
Некоторые идиот решили, что было бы разумно разделить объекты, методы и свойства, вместо этого рассматривать их как самостоятельную, автономную концепцию. В хорошие дни вы можете найти класс объектов (например, "Range" для excel), щелкните ссылку "Свойства" или "Методы", чтобы узнать, какие p или m были поддержаны для этого класса, и что они сделали специально для этого класс.
Теперь все, что мы получаем, - это общее описание класса, отсутствие ссылок на его свойства и методы. Свойства и методы перечислены в алфавитном порядке как их собственный общий объект, отдельно от классов объектов.
Таким образом, при программировании нет простого способа узнать, как использовать класс объекта. Какие методы доступны? Какие свойства? Что они делают? Мы больше не знаем...