Читаем VBA для чайников полностью

К сожалению, ни один элемент управления не создается со стандартным диапазоном значений.

Для того чтобы связать значение, выбранное с помощью полосы прокрутки или кнопок со стрелками, с другим элементом управления, таким как текстовое поле, вам придется немного попрограммировать. Чаще всего мы обойдемся добавлением всего одной строки кода. Приведенный ниже фрагмент кода передает значение, полученное с помощью полосы прокрутки sclWarpFactor подписи lblScroll Bar Readout, после щелчка на бегунке полосы прокрутки:

Private Sub sclWarpFactor_Click

lblScrollBarReadout.Caption = sclWarpFactor.Value

End Sub

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

Риc. 19.11. Диалоговое окно, показанное на рис. 19.10, претерпело некоторые улучшения

<p>Дополнительно о программировании форм</p>

Программирование форм - это действительно высокое искусство. Очень сложно создать форму, которая будет вести себя так, как вы того ожидаете, не говоря уже о пользователе.

Сведения, изложенные в настоящей главе, должны помочь вам лучше и быстрее достичь поставленной цели.

<p>Использование переменных для ссылок на формы</p>

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

Поскольку формы являются объектами, к ним применима техника работы с объектами, рассмотренная в главе 10. Следующая процедура иллюстрирует процесс. Обратите внимание, что переменная должна объявляться как конкретная форма, а не как родовой объект User Form:

Sub FormVariableDemo()

Dim frml As FormAnOpinion

Set frml = FormAnOpinion

' Изменение свойств и вызов методов с помощью переменной:

With frml

.Caption = "Все указанное выше"

. Show

End With

End Sub

Строго говоря, оператор Set создает отдельную копию, или экземпляр, формы, присваивая его заданной вами переменной. Таким образом можно отображать несколько копий одной и той же формы, каждая из которых будет со своими собственными значениями в элементах управления. Для создания дополнительных экземпляров формы нужно использовать ключевое слово New. Вот как это выглядит:

' объявление переменных для форм

Dim frmOne As MultiForm

Dim frmTwo As MultiForm

' заполнение каждой переменной своим экземпляром формы

Set frmOne = MultiForm

Set frmTwo = New MultiForm ' Здесь используется New

' отображение двух экземпляров форм

frmOne . Show

frmTwo.Show

<p>Распознавание нажатий клавиш</p>

Используйте события KeyPress, KeyDown и KeyUp, чтобы отвечать на нажатия клавиш пользователем. Событие KeyPress удобно использовать для распознавания клавиш с обычными "печатаемыми" символами (буквы, числа, знаки пунктуации), когда нужно обработать информацию, вводимую в текстовое поле или в поле со списком. С помощью этого события распознаются также многие из комбинаций типа , а также клавиша . Немного позже я покажу, как проверить или изменить напечатанный символ с помощью процедуры обработки события KeyPress.

События KeyDown и KeyUp, напротив, распознают практически любую посылаемую им комбинацию клавиш, включая выкрутасы типа . С этими событиями работать труднее, чем с KeyPress, но зато они позволяют использовать более широкий набор сочетаний клавиш. Например, можно создать процедуру обработки события KeyDown, которая позволяет с помощью комбинаций и > соответственно уменьшать или увеличивать значение полосы прокрутки, например, на 10.

В главе 10 мы обсудили основные приемы, позволяющие убедиться в том, что пользователь ввел в форму правильные сведения. Здесь мы обсудим еще несколько приемов.

В случае текстовых полей и полей со списком некоторые символы для вводимых данных не допускаются. Используйте процедуру обработки события KeyPress, чтобы убрать с экрана недопустимые символы в случае печатания их пользователем. Следующий программный код позволяет вводить только буквы и цифры:

Private Sub txtSerial Number_KeyPress(ByVal KeyAscii _

As MSForms.ReturnInteger)

' весь следующий блок является условием:

If Chr(KeyAscii) < "0" Or _

(Chr(KeyAscii) > "9" And Chr(KeyAscii) < "A") Or _

(Chr(KeyAscii) > "Z" And Chr(KeyAscii) < "a") Or _

Chr(KeyAscii) > "z" Then

MsgBox "Недопустимый символ!"

KeyAscii = 0 ' отбрасывание символа

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных