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

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

Жанры

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. Именно об этом мы и поговорим в настоящей главе.

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

Черный Маг Императора 6

Герда Александр
6. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
7.00
рейтинг книги
Черный Маг Императора 6

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

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

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

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

Я снова граф. Книга XI

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

Болотник

Панченко Андрей Алексеевич
1. Болотник
Фантастика:
попаданцы
альтернативная история
6.50
рейтинг книги
Болотник

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Жестокая свадьба

Тоцка Тала
Любовные романы:
современные любовные романы
4.87
рейтинг книги
Жестокая свадьба

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут

Голодные игры

Коллинз Сьюзен
1. Голодные игры
Фантастика:
социально-философская фантастика
боевая фантастика
9.48
рейтинг книги
Голодные игры

Последняя Арена 8

Греков Сергей
8. Последняя Арена
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Последняя Арена 8

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Последний Паладин

Саваровский Роман
1. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин

Измена. Свадьба дракона

Белова Екатерина
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Измена. Свадьба дракона