Вход/Регистрация
VBA для чайников
вернуться

Каммингс Стив

Шрифт:

Для сохранения или получения информации, хранящейся в виде свойства документа, используется свойство Value объекта Property. Предположим, что вы используете такое свойство документа, как ButtonCount, для сохранения количества щелчков мышью на кнопке одной из форм программы. Приведенный ниже фрагмент кода считывает и обновляет значение свойства после каждого щелчка на кнопке:

With ActiveWorkbook._

CustomDocument Properties("ButtonCount")

.Value = .Value + 1

End With

Приведенный ниже пример иллюстрирует выполнение небольшой практической задачи. В этом случае пользователь видит сообщение о том, что он щелкнул на кнопке больше определенного количества раз, даже в том случае, если между щелчками документ неоднократно закрывался и открывался заново. Предположим, что значение константы cint Cut Of fValue задано раньше равным минимальному количество щелчков, после достижения которого сообщение отображается на экране в первый раз.

With

ActiveWorkbook.CustomDocumentProperties("ButtonCount")

' получение сохраненного значения свойства

intCurrentCount = .Value

' отображение сообщения при выполнении условия

If intCurrentCount > cintCutOffValue Then

MsgBox "Вы щелкнули на кнопке " _

& " больше " & cintCutOffValue _

& " раз."

End If

' увеличение значения свойства

.Value == intCurrentCount + 1

End With

intCurrentCount = ActiveWorkbook_

.CustomDocumentProperties("ButtonCount").Value

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

Два остальных возможных решения для сохранения данных на диске сработают в любом приложении, поддерживающем VBA. Вы можете сохранять значения в реестре Window (и даже считывать их оттуда), используя инструкции Save Setting и Get Setting, а также сохранять данные в отдельном файле. Оба эти способа рассмотрены в главе 20.

Глава 15. Программирование на VBA в Word.

В этой главе ...

~ Объектная модель Word

~ Ключевые объекты Word: окна, выделения, диапазоны и объект Find

~ Диапазоны или выделения: что использовать при работе с текстом

~ Методы и свойства для манипуляции с текстом

~ Поиск и замена текста с помощью VBA в Word

Изо всего набора приложений Office Word предлагает наиболее богатый набор средств программирования. Знакомство с объектами Word, такими как Range и Find, иногда оказывается рискованным, но это очень важно, если вы действительно хотите создавать VBA-процедуры, раскрывающие всю мощь Word. Именно об этом мы и поговорим в настоящей главе.

Объектная модель Word содержит так много объектов и их коллекций, что вам потребуется огромный лист бумаги, если вы захотите построить на нем иерархию всех этих объектов в графическом виде. Очевидно, что я смогу рассмотреть лишь малую толику от того колоссального количества объектов, свойств и методов, которые вы сможете использовать в своих программах. В настоящей главе освещены только наиболее важные приемы работы с Word VBA. Если вы хотите получить более подробные сведения, вам придется неоднократно обращаться к справочной системе.

Знакомство с объектом Application

Как и во всех других VBA-приложениях, ключевым в объектной модели Word является объект Application. Другими словами, этот объект содержит все остальные объекты Word. Поскольку объект Application занимает центральное место в программировании на VBA в Word, вам даже не придется явно указывать его имя при работе со многими важными объектами. Однако вам не следует забывать о роли, которую играет этот объект, поскольку он вам потребуется при работе со свойствами и методами самого приложения, а также при обращении к некоторым другим объектам. Например, приведенная ниже инструкция использует метод List Commands объекта Application:

Application.ListCommands (True)

Между прочим, метод List Commands создает новый документ и помещает в него таблицу, содержащую комбинации клавиш и команды меню Word. Если вы передаете методу List Commands значение True, новый документ содержит комбинации клавиш и команды меню Word. Передайте ему значение False, чтобы в нем перечислялись только команды.

Доступ к документам Word с помощью VBA

Если написанная вами VBA-процедура функционирует прямо в документе, вы должны указать объект этого документа непосредственно в коде, Часто вы сможете сделать это неявным образом, используя объект Selection, о котором я расскажу дальше в настоящей главе. Однако в остальных ситуациях вам придется явно идентифицировать целевой объект.

Работа с активным документом

Типичная VBA-процедура в Word выполняет все свои магические действия в том документе, который в данный момент открыт для редактирования. Для указания активного документа используется объект ActiveDocument. Например, приведенная выше инструкция просто закрывает активный документ:

ActiveDocument.Close

Как видите, вам не нужно писать код для определения того, какой же документ редактируется в данный момент: достаточно просто использовать объект ActiveDocument.

  • Читать дальше
  • 1
  • ...
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: