Ця книга допоможе освоїти інтегроване середовище розробки VBA і навчитися програмувати в VBA з використання об'єктів, їх властивостей, методів і подій. Обговорювані прийоми програмування ілюструються прикладами, які можна відразу ж випробувати на практиці. Отримані знання ви зможете застосувати як для настроювання й удосконалення популярний офісних додатків, включаючи додатки Office XP, так і для створення власних додатків.
Книга розрахована на тих, хто збирається швидко і без зайвих зусиль навчитися програмувати для Windows, використовуючи VBA.
Книга: VBA для чайників
Вибір елемента за допомогою перемикача
Вибір елемента за допомогою перемикача
Як у житті, так і в програмному забезпеченні, є багато взаємовиключних варіантів. Купуючи морозиво, ви вибираєте або з родзинками, або з горіхами, або в фруктами, але ніколи не всі три відразу. Купуючи плаття або штани, ви завжди купуєте тільки ті речі, які підходять вам за розміром. А коли ви збираєтеся одружитися з Анною, про інших претенденток ви не думаєте (Анна повинна цьому радіти!).
У Windows для зображення взаємно виключають варіантів вибору використовуються так звані перемикачі. Це невеликі круглі кнопки, які працюють як натискні кнопки на радіоприймачах в автомобілях. Одночасно можна слухати тільки одну радіостанцію. На рис. 10.19 показаний типовий набір перемикачів.
Мал. 10.19. Перемикачі в дії
Перемикачів завжди має бути кілька, але вибрати можна тільки один з них. Якщо ви виберете один з перемикачів, всі інші автоматично залишаться обраними.
Не турбуйтеся про те, як створити групу перемикачів. Все, що вам необхідно зробити, - це розмістити кнопки в одному місці в формі. VBA автоматично об'єднає їх в групу. При запуску програми буде обраний тільки один перемикач.
А що це за дивні слова: перемикачі повинні бути розміщені "в одному місці форми"? Звичайно, це не офіційна термінологія VBA, але можна сказати наступне: одна частина форми є самою формою. Кожна додана вами рамка елемента управління створить іншу частину форми. І кожна вкладка елемента управління, що складається з декількох вкладок, також є окремою частиною форми (про елементах управління, що складаються з декількох вкладок, які створюються для ноутбуків і які схожі на звичайні діалогові вікна Windows, я розповім в главі 19). Можна розмістити рамку всередині іншої рамки або на вкладці елемента управління, що складається з декількох вкладок. Кожна вкладена рамка займає свою частину форми.
Якщо в формі є кілька рамок, VBA розглядає перемикачі, які не перебувають всередині будь-якої рамки, як одну групу, а перемикачі, що знаходяться в рамці, - як окрему групу. На рис. 10.20 видно, що я маю на увазі.
Мал. 10.20. Три окремі групи перемикачів
Для того щоб вибрати перемикач, досить просто клацнути на ньому. Однак зазвичай після вибору перемикача негайно нічого не відбувається. Діалогове вікно залишиться відкритим. Це дозволить користувачеві ще раз подумати і, може бути, вибрати інший перемикач. І тільки після того, як користувач клацне на кнопці ОК, він підтвердить свій вибір.
Перед програмістом стоїть завдання: як зрозуміти, який перемикач обраний? Для цього ви повинні перевірити значення властивості Va l ue для кожного перемикача в групі. Правда, є спосіб обійти це. Для цього можна скористатися інструкцією If. ElseIf:
If OptionEuttonl.Value = True Then
ElseIf OptionButton2.Value = True Then
ElseIf OptionButton3.Value = True Then
Перемикачі корисні, коли доводиться мати справу з великою кількістю взаємовиключних варіантів. Однак, коли необхідно вибрати кілька варіантів, краще скористатися прапорцями або кнопками з фіксацією. Прапорці та кнопки з фіксацією використовуються для вибору одного з пари протилежних варіантів, наприклад Yes (Так) або No (Ні). On або Off, True або False і Stay або Leave. На практиці відмінність між прапорцем і кнопкою з фіксацією полягає в тому, як вони виглядають.
* Прапорець - це маленький квадратик, в якому з'являється галочка, якщо ви обрали Yes, On або True. (Якщо квадратик порожній, значить прапорець скинутий.)
* Кнопка з фіксацією схожа на звичайну кнопку. Єдина відмінність полягає в тому, що, коли ви натискаєте на неї, вона залишається такою, що натискує.
На рис. 10.21 показані кілька прапорців і кнопок з фіксацією.
Мал. 10.21. Прапорці та кнопки з фіксацією
Прапорці часто об'єднують в групи для того, щоб скласти перелік не взаємовиключних варіантів вибору. На рис. 10.22 наведено приклад прапорців.
Зверніть увагу на те, що кожен окремий прапорець показує, чи вибраний елемент, біля якого він встановлений.
Мал. 10.22. Встановлювати і скидати прапорці можна незалежно
Як завжди, властивість Value містить інформацію, що відноситься до вибору параметрів користувачем. Якщо прапорець встановлений, властивість Value одно True, якщо прапорець скинутий, властивість Value одно False. Така ж ситуація і з кнопками з фіксацією: властивість Value одно True; якщо кнопка натиснута. В іншому випадку властивість Value одно False. Для вибору параметрів можна скористатися наступним кодом:
If tglLightSwitch.Value = True Then
If tglLightSwitch.Value = True Then
If tglLightSwitch.Value Then
Якщо ви просто хочете змінити поточний стан прапорця або кнопки з фіксацією, найкраще скористатися оператором Not. У наступному коді прапорець встановлюється, якщо він був скинутий, і скидається, якщо він був встановлений:
ChkYesOrNo.Value = Not chkYesOrNo.Value
Генерація: 0.129. Запитів До БД / Cache: 0/0