Чтение онлайн

на главную - закладки

Жанры

VBA для чайников

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

Шрифт:

Как видно из двух первых инструкций Case, библиотека объектов Office содержит именованные константы, которые соответствуют значениям каждого типа "обычных" кнопок (т. е. кнопок, которые отображаются в нижней части окна Помощника). Вы можете использовать эти константы для определения того, на какой именно из кнопок щелкнул пользователь.

Для определения щелчка на кнопке просто используйте номер подписи к кнопке, как показано на примере третьей инструкции Case.

Для считывания сведений о текущем состоянии флажков в окне Помощника используйте свойство Checked каждого из них после закрытия окна пользователем. В самом простейшем случае вы можете использовать

последовательность операторов If ... Then, по одному оператору для каждого флажка, как показано ниже:

With blnUpUpAway

If .Checkboxes(1).Checked Then

(код, выполняемы в том случае, если флажок 1 установлен )

Else

(код, выполняемы в том случае, если флажок не 1 установлен)

End If If .Checkboxes(2).Checked Then

(код, выполняемы в том случае, если флажок 2 установлен )

Else

(код, выполняемы в том случае, если флажок 2 не установлен )

End If

End With

Вы можете использовать свойство Callback объекта Balloon для определения процедуры, которая будет обрабатывать щелчки на кнопках. Этот прием оказывается особенно полезным при использовании немодальных объектов balloon, которые остаются на экране до тех пор, пока пользователь не щелкнет на кнопке.

Сохранение значений переменных на диске

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

Среди всех приложений Office только Word предоставляет вам инструменты для хранения подобных переменных (с помощью объекта Variable ). Однако с подобной задачей по силам справиться и многим другим приемам.

Сохранение и получение значений переменных в Excel, PowerPoint и Project

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

Для создания нового свойства документа в Excel, PowerPoint или Project (в Word тоже при необходимости можно воспользоваться подобным методом) выберите метод Add из коллекции свойств CustomDocuraent Properties этого документа. Приведенный ниже пример срабатывает в Excel, где объект ActiveWorkbook означает активную рабочую книгу во время выполнения процедуры (в Word и PowerPoint это объекты ActiveDocument и Active Presentation соответственно):

ActiveWorkbook.CustomDocumentProperties.Add_

Name:= "Button Count", Li nkToCont ent:=False,_

Type:= msoPropertyTypeNumber, Value:=0

Параметр LinkToContent должен иметь значение False, если вы сохраняете значение переменной в виде пользовательского

свойства документа (вам следует присвоить этому параметру значение True, если вы хотите, чтобы значение свойства было связано с содержимым ячейки Excel или закладкой Word). Параметр Туре определяет тип данных для свойства; в качестве значения допустимо использование таких констант, как msoPropertyTypeNumber, msoPropertyTypeBoolean, msoPropertyTypeDate, msoPropertyTypeFloat или msoPropertyTypeString.

Для сохранения или получения информации, хранящейся в виде свойства документа, используется свойство 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. Именно об этом мы и поговорим в настоящей главе.

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

Точка Бифуркации

Смит Дейлор
1. ТБ
Фантастика:
боевая фантастика
7.33
рейтинг книги
Точка Бифуркации

Практик

Листратов Валерий
5. Ушедший Род
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Практик

Иной. Том 5. Адская работа

Amazerak
5. Иной в голове
Фантастика:
боевая фантастика
городское фэнтези
технофэнтези
рпг
5.00
рейтинг книги
Иной. Том 5. Адская работа

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Корректировщик

Головачев Василий Васильевич
Фантастика:
научная фантастика
6.25
рейтинг книги
Корректировщик

Кодекс Охотника

Винокуров Юрий
1. Кодекс Охотника
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Кодекс Охотника

Князь

Мазин Александр Владимирович
3. Варяг
Фантастика:
альтернативная история
9.15
рейтинг книги
Князь

Анти-Ксенонская Инициатива

Вайс Александр
7. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Анти-Ксенонская Инициатива

Абсурдистан

Штейнгарт Гари
Проза:
современная проза
5.00
рейтинг книги
Абсурдистан

Ермак. Противостояние. Книга одиннадцатая

Валериев Игорь
11. Ермак
Фантастика:
попаданцы
альтернативная история
4.50
рейтинг книги
Ермак. Противостояние. Книга одиннадцатая

Я еще барон. Книга III

Дрейк Сириус
3. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще барон. Книга III

Дважды одаренный. Том VIII

Тарс Элиан
8. Дважды одаренный
Фантастика:
боевая фантастика
альтернативная история
аниме
попаданцы
5.00
рейтинг книги
Дважды одаренный. Том VIII

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Цикл романов "Целитель". Компиляция. Книги 1-17

Большаков Валерий Петрович
Целитель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Цикл романов Целитель. Компиляция. Книги 1-17