Vba excel как изменить текст кнопки

Еще раз здрасте!Так получилось, что я навтыкал в проект кучу кнопок из Элементов управления форм. Кнопки запускают макросы.Теперь возникла необходимость по определенному событию с помощью макроса(либо иным способом) менять текст в этих кнопках (делать перевод на другой язык).Например Button1 = "Играть", после выполнения макроса Button1 = "Play" 1. Как вообще определить названия этих кнопок, тк в свойствах их нигде нет? 2. Можно ли будет обойтись без русских слов в коде VBA (текст кнопок планирую...
 

IvanSh

Пользователь

Сообщений: 57
Регистрация: 16.02.2014

Еще раз здрасте!
Так получилось, что я навтыкал в проект кучу кнопок из Элементов управления форм. Кнопки запускают макросы.
Теперь возникла необходимость по определенному событию с помощью макроса(либо иным способом) менять текст в этих кнопках (делать перевод на другой язык).
Например Button1 = «Играть», после выполнения макроса Button1 = «Play»

 1. Как вообще определить названия этих кнопок, тк в свойствах их нигде нет?
 2. Можно ли будет обойтись без русских слов в коде VBA (текст кнопок планирую подгружать с соседнего листа)?
 3. Как выглядит пример такой функции.
 4. После переименования не слетят ли навешенные на них макросы?

Может кто-то вспомнит по ActiveX, но это крайний случай, если не получится с обычными кнопками ))

Изменено: IvanSh17.02.2014 22:35:37

 

Юрий М

Модератор

Сообщений: 60390
Регистрация: 14.09.2012

Контакты см. в профиле

#2

17.02.2014 22:28:52

В общем случае так:

Код
ActiveSheet.DrawingObjects("ИмяВашейКнопки").Characters.Text = "Мой текст"
 

IvanSh

Пользователь

Сообщений: 57
Регистрация: 16.02.2014

Как узнать ИмяВашейКнопки?  Это то что на ней в данный момент написано?

Если так то вот что выдает:

Изменено: IvanSh17.02.2014 22:38:42

 

Hugo

Пользователь

Сообщений: 23137
Регистрация: 22.12.2012

Дайте пример файла с парой кнопок — всем будет проще.

 

Юрий М

Модератор

Сообщений: 60390
Регистрация: 14.09.2012

Контакты см. в профиле

#5

17.02.2014 22:53:40

Цитата
IvanSh пишет:
Как узнать ИмяВашейКнопки?Это то что на ней в данный момент написано?

Нет — это разные вещи. См. файл.

Прикрепленные файлы

  • Текст на кнопке.xls (23 КБ)

 

IvanSh

Пользователь

Сообщений: 57
Регистрация: 16.02.2014

Юрий, не работает как нужно. Я просто макрос вызываю не той кнопкой, которую переименовываю )) А вот на которую жму она переименовывается.
Задача одним кликом определенной кнопки перевести все кнопки проекта на другой язык, при чем язык так же задается динамически (но это другая история).

 

IvanSh

Пользователь

Сообщений: 57
Регистрация: 16.02.2014

#7

17.02.2014 23:11:42

Цитата
Hugo пишет:
Дайте пример файла с парой кнопок — всем будет проще.

Вот пример, там и задание ))

Прикрепленные файлы

  • Текст на кнопке.xls (33.5 КБ)

 

Sanja

Пользователь

Сообщений: 14837
Регистрация: 10.01.2013

#8

17.02.2014 23:30:10

тупо:

Код
Sub Кнопка6_Щелчок()
    For I = 2 To 4
    ActiveSheet.Shapes.Range(Array("Button " & I)).Select
    Selection.Characters.Text = "Button " & I-1
    Next
End Sub

Изменено: Sanja17.02.2014 23:34:38

Согласие есть продукт при полном непротивлении сторон.

 

Юрий М

Модератор

Сообщений: 60390
Регистрация: 14.09.2012

Контакты см. в профиле

Если одна кнопка должна поменять язык на всех остальных, то так (см. файл)

 

Как узнать ИмяВашейКнопки?

Изменено: Александр Моторин18.02.2014 00:19:54

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#11

18.02.2014 05:05:30

Цитата
тк в свойствах их нигде нет?

Посмотреть свойства Button можно в Object Browser, если включить в его вспомогательном меню Show Hidden Members. И как вариант, в дополнение к решению Юрия М, не обходя все Shape на листе.

Код
    Dim pButton As Button
    For Each pButton In ActiveSheet.Buttons
        If pButton.Name <> "Button 4" Then
            If Lang Then
                pButton.Text = "My first text"
            Else
                pButton.Text = "Мой первый текст"
            End If
        End If
    Next
    Lang = Not Lang

Успехов.

 

IvanSh

Пользователь

Сообщений: 57
Регистрация: 16.02.2014

Ребята, спасибо! Это то что нужно ))) щас  буду пробовать, но только буду обзывать кнопки не все одинаково, а текст кнопки будет соответствовать значению массива (списка) в соответсвии с цифрой в конце названия кнопки: Button1.Characters.Text = mass[1], Button2.Characters.Text = mass[2] … и тд

Хотя судя по всему придется использовать двумерный массив mass[i,j], где i — перевод слова, j -язык

Изменено: IvanSh18.02.2014 08:26:57

 

IvanSh

Пользователь

Сообщений: 57
Регистрация: 16.02.2014

#13

18.02.2014 12:38:44

Короче потестил предложенный код: Юрий М спс у Вас все работает, мне нужна была именно строчка:

Код
ActiveSheet.DrawingObjects("Button1").Characters.Text = "New name"

Алекс Моторин Вам отдельный респект, что указали на мою невнимательность. Теперь переименовал все кнопки и привел в порядок.

Anvg, к сожалению Ваш вариант так и не заработал.

 

Юрий М

Модератор

Сообщений: 60390
Регистрация: 14.09.2012

Контакты см. в профиле

#14

18.02.2014 13:26:14

Цитата
IvanSh пишет:
мне нужна была именно строчка:

Код
 ActiveSheet.DrawingObjects("Button1").Characters.Text = "New name" 

Эта строчка была у Вас ещё в первом ответе))

 

Александр Моторин

Пользователь

Сообщений: 958
Регистрация: 31.12.2012

#15

18.02.2014 13:40:41

Код
Option Explicit
Dim K
Sub QWERT()
K = IIf(K = 3, 2, 3)
переименовать K
End Sub
Sub переименовать(Z)
Dim i
For i = 1 To 8
ActiveSheet.DrawingObjects("Кнопка " & i).Characters.Text = WorksheetFunction.VLookup(i, Range("язык"), Z, 0)
Next
End Sub

 

IvanSh

Пользователь

Сообщений: 57
Регистрация: 16.02.2014

#16

18.02.2014 16:10:10

Александр спасибо, за меня сделали код. Только собрался писать, именно это и нужно было реализовать ))) тока табличка с текстом кнопок будет на другом листе.

Единственно не понимаю зачем такие усложнения, я сделал проще:

Код
j = WorksheetFunction.Match(Sheets("List1").Range("F34").Value, Range("Lang"), 0)

For i = 1 To Button_count    /количество кнопок/
     Sheets("Любой лист").DrawingObjects("Button" & i).Characters.Text = WorksheetFunction.VLookup(i, Range("Button_transl"), j, 0)
Next 

Изменено: IvanSh18.02.2014 21:42:42

 

IvanSh

Пользователь

Сообщений: 57
Регистрация: 16.02.2014

#17

18.02.2014 16:11:49

Цитата
Юрий М пишет:
Эта строчка была у Вас ещё в первом ответе))

Да, виноват, мне просто в голову не пришло посмотреть в левое окошечко с названием кнопки )) и я долго искал где название кнопки посмотреть. Так сказать идей много, а матчасть на двоечку )

Изменено: IvanSh18.02.2014 16:12:23

Элемент управления пользовательской формы CommandButton, используемый в VBA Excel для запуска процедур и макросов. Свойства кнопки, примеры кода с ней.

UserForm.CommandButton – это элемент управления пользовательской формы, предназначенный исключительно для запуска процедур и макросов VBA Excel.

Элемент управления CommandButton

Для запуска процедур и макросов обычно используется событие кнопки – Click.

Свойства элемента CommandButton

Свойство Описание
AutoSize Автоподбор размера кнопки. True – размер автоматически подстраивается под длину введенной надписи (заголовка). False – размер элемента управления определяется свойствами Width и Height.
BackColor Цвет элемента управления CommandButton.
Caption Надпись (заголовок) – текст, отображаемый на кнопке.
ControlTipText Текст всплывающей подсказки при наведении курсора на кнопку.
Enabled Возможность взаимодействия пользователя с элементом управления CommandButton. True – взаимодействие включено, False – отключено (цвет надписи становится серым).
Font Шрифт, начертание и размер текста надписи.
Height Высота элемента управления.
Left Расстояние от левого края внутренней границы пользовательской формы до левого края элемента управления.
Picture Добавление изображения вместо текста заголовка или дополнительно к нему.
PicturePosition Выравнивание изображения и текста на кнопке.
TabIndex Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой нажатием клавиш «Tab», «Enter». Отсчет начинается с 0.
Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края элемента управления.
Visible Видимость элемента управления CommandButton. True – элемент отображается на пользовательской форме, False – скрыт.
Width Ширина элемента управления.
WordWrap Перенос текста заголовка на новую строку при достижении ее границы. True – перенос включен, False – перенос выключен.

В таблице перечислены только основные, часто используемые свойства кнопки. Все доступные свойства отображены в окне Properties элемента управления CommandButton.

Пример кнопки с надписью и изображением

Пример кнопки с надписью и изображением

Примеры кода VBA Excel с кнопкой

Изначально для реализации примеров на пользовательскую форму UserForm1 добавлена кнопка CommandButton1.

Пример 1

Изменение цвета и надписи кнопки при наведении на нее курсора.

Условие примера 1

  • Действия при загрузке формы: замена заголовка формы по умолчанию на «Пример 1», замена надписи кнопки по умолчанию на «Кнопка», запись цвета кнопки по умолчанию в переменную уровня модуля.
  • Сделать, чтобы при наведении курсора на кнопку, она изменяла цвет на зеленый, а надпись «Кнопка» менялась на надпись «Нажми!»
  • Добавление кода VBA Excel, который будет при удалении курсора с кнопки возвращать ей первоначальные настройки: цвет по умолчанию и надпись «Кнопка».

Решение примера 1

1. Объявляем в разделе Declarations модуля пользовательской формы (в самом начале модуля, до процедур) переменную myColor:

2. Загружаем пользовательскую форму с заданными параметрами:

Private Sub UserForm_Initialize()

  Me.Caption = «Пример 1»

    With CommandButton1

      myColor = .BackColor

      .Caption = «Кнопка»

    End With

End Sub

3. Меняем цвет и надпись кнопки при наведении на нее курсора мыши:

Private Sub CommandButton1_MouseMove(ByVal _

Button As Integer, ByVal Shift As Integer, _

ByVal X As Single, ByVal Y As Single)

  With CommandButton1

    .BackColor = vbGreen

    .Caption = «Нажми!»

  End With

End Sub

4. Возвращаем цвет и надпись кнопки при удалении с нее курсора мыши:

Private Sub UserForm_MouseMove(ByVal _

Button As Integer, ByVal Shift As Integer, _

ByVal X As Single, ByVal Y As Single)

  With CommandButton1

    .BackColor = myColor

    .Caption = «Кнопка»

  End With

End Sub

Все процедуры размещаются в модуле пользовательской формы. Переменная myColor объявляется на уровне модуля, так как она используется в двух процедурах.

Пример 2

Запуск кода, размещенного внутри процедуры обработки события Click элемента управления CommandButton:

Private Sub CommandButton1_Click()

  MsgBox «Код внутри обработки события Click»

End Sub

Пример 3

Запуск внешней процедуры из процедуры обработки события Click элемента управления CommandButton.

Внешняя процедура, размещенная в стандартном модуле проекта VBA Excel:

Sub Test()

  MsgBox «Запуск внешней процедуры»

End Sub

Вызов внешней процедуры из кода обработки события Click

  • с ключевым словом Call:

Private Sub CommandButton1_Click()

  Call Test

End Sub

  • без ключевого слова Call:

Private Sub CommandButton1_Click()

  Test

End Sub

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

Как уже было сказано во введении, у программных объектов имеются различные свойства. Первое очевидное желание заключается в том, чтобы просмотреть (а затем и изменить) значения свойств объектов. Для просмотра свойств объекта его необходимо сначала выделить в режиме конструктора (щелкнуть на нем мышью), а затем с помощью пиктограммы Свойства (она расположена рядом с пиктограммой Режим конструктора) открыть окно свойств (рис. 1.8).

Рис. 1.8. Окно свойств объекта

Рис. 1.8. Окно свойств объекта

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

Если приглядеться к окну на рис. 1.8, то мы увидим, что для ряда свойств возможны только два варианта значений. Например, для свойства Visible (определяет видимость объекта на экране) возможны только значения False и True. Такая ситуация наблюдается и для ряда других свойств. Среди них можно отметить Enabled определяет доступ к объекту в режиме выполнения (если установить для этого свойства значение False и выйти из режима конструктора, то объект будет недоступен). Свойство AutoSize позволяет обеспечить автоматическую подгонку размеров кнопки под размер текста, расположенного на ней. Такое будет происходить, если установить True в качестве значения данного свойства.

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

  • Width ширина;
  • Height высота;
  • Тор координата верхней границы элемента, начиная от верхней части листа;
  • Left координата левой границы элемента, начиная от левой части листа.

Если для свойства Enabled установлено значение False, то элемент управления на экране будет выглядеть более блекло (такая ситуация знакома по работе с различными приложениями, когда ряд разделов меню недоступен).

Рис. 1.9. Палитра цветов

Рис. 1.9. Палитра цветов

Если теперь в режиме конструктора выбудете перемещать созданную на листе кнопку но экрану и изменять ее размеры (с помощью окружающих ее маркеров), то соответствующие значения в окне свойств будут меняться. И наоборот, изменив значения в окне свойств, вы увидите изменения на экране. Для установки значений ряда свойств следует использовать пиктографические меню. Так, с помощью свойства BackColor можно изменять цвет кнопки. Для этого всего лишь требуется щелчком мыши выбрать необходимый цвет (рис. 1.9). Аналогичное свойство ForeColor определяет цвет текста на кнопке. За надпись на кнопке отвечает другое свойство Caption. Если напротив названия этого свойства ввести текст (рис. 1.10), то мы увидим его и на кнопке.

Рис. 1.10. Установка значения свойства Caption

Рис. 1.10. Установка значения свойства Caption

Для изменения шрифта текста на кнопке имеется свойство Font. Если в окне свойств попытаться изменить его значение, то перед вами откроется знакомое (но работе с различными приложениями) окно для выбора шрифта и размера букв (рис. 1.11). При этом технические действия здесь выполняются с помощью щелчков мышью.

Рис. 1.11. Окно диалога для выбора шрифта надписи на кнопке

Рис. 1.11. Окно диалога для выбора шрифта надписи на кнопке

Еще одно интересное свойство, Picture, позволяет разместить на кнопке изображение (рис. 1.12) из графического файла. Для этого в качестве значения свойства следует указать имя файла. Это действие производится с помощью стандартного диалогового окна (рис. 1.13), в котором необходимо выбрать один из графических файлов на компьютере либо в сети. В случае, если вы захотите убрать изображение, то в ноле для значения данного свойства следует воспользоваться клавишей Delete.

Во введении уже упоминалось, что основное свойство объекта это имя. В окне свойств оно называется Name. Как мы видели (см. рис. 1.8) на примере создания кнопки, Excel автоматически присвоил ей имя. Имя первой созданной кнопки на рабочем листе по умолчанию CommandButtonl, которое вы при желании можете изменить. Явной необходимости изменения имен, которые присваиваются по умолчанию, нет. Однако очень часто программисты назначают объектам свои имена. Это связано с тем, что к любым объектам на листе мы можем получить доступ из текста программы (фактически требуется обращаться к свойствам и методам этих объектов), указав имя конкретного объекта. В связи с этим с точки зрения организации программного кода часто удобнее использовать свою систему назначения имен объектов.

Рис. 1.12. Размещение на кнопке изображения

Рис. 1.12. Размещение на кнопке изображения

Система формирования имен по умолчанию заключается в комбинации типа элемента управления (CommandButton — командная кнопка) и числа (порядкового номера элемента управления данного типа).

Для первой созданной кнопки имя — CommandButton1. Если мы на рабочем листе разместим еще одну кнопку, то она будет иметь имя CommandButton2. При добавлении последующих кнопок данный принцип сохраняется. Если вы все же решитесь изменить имя, то вместо CommandButton1 в окне свойств следует набрать слово или словосочетание, которое вас устраивает. Но заметим, что оно должно быть без пробелов внутри (частая ошибка в первых разработках). В качестве примера подберем новое имя для кнопки — PrimerButton.

Рис. 1.13. Окно диалога для выбора графического файла

Рис. 1.13. Окно диалога для выбора графического файла

Теперь, если вы произвели описанные выше установки (а также убрали изображение очистили значение в свойстве Picture), кнопка будет выглядеть так, как показано на рис. 1.14. Для свойства AutoSize здесь установлено значение True, что позволяет подогнать размеры кнопки под расположенную на ней надпись.

С подобных шагов начинается любая разработка на листе размещаются элементы ActiveX, и ряду их свойств присваиваются необходимые значения. На первый взгляд свойства Name и Caption похожи, и кажется, одно из них является лишним. Однако это не так, и в связи с этим дадим небольшое пояснение. Дело в том, что Name внутреннее название объекта, и значение этого свойства используется на программном уровне (во введении об этом уже шла речь). Если мы хотим использовать в программном коде обращение к свойствам и методам объекта, то в строке программной процедуры необходимо указать имя объекта. Свойство же Caption отвечает просто за надпись на кнопке, и значение его только отображается на экране.

Реально у каждого элемента ActiveX имеется много свойств. Некоторые из них являются общими для большинства (или даже для всех) элементов ActiveX, а другие свойства уникальны для определенных элементов управления.

Рис. 1.14. Установка свойств кнопки

Рис. 1.14. Установка свойств кнопки

Таким образом, результатом выполненных действий явились создание нового объекта в нашей рабочей книге Microsoft Excel и установка значений для ряда его свойств. Вообще, в режиме конструктора мы размещаем на рабочем листе элементы ActiveX и устанавливаем значения их свойств, а в режиме выполнения работаем с созданными объектами (щелкаем кнопками, вводим текст в текстовые окна и т. д.).

<< Оглавление

Стандартный элемент управления: CommandButton

Что есть CommandButton — это кнопка, управляющая кнопка. При нажатии на кнопку в приложении выполняются определенные, разработчиком, действия. Применяется для выполнения команд и запуска программ.

Является наиболее часто применяемым элементом.

В этой статья я попытаюсь рассмотреть основные свойства, методы и события элемента CommandButton.

На рис 1 и рис 2 представлен внешний вид кнопки на панели элементов управления и на форме.



Рис 1. Изображение CommandButton на панели элементов управления



Рис 2. Изображение CommandButton на форме

Чтобы добавить кнопку на форму, необходимо произвести двойной щелчок по пиктограмме кнопки на панели элементов управления. Либо перетащить элемент CommandButton с панели элементов управления на форму.

После добавления кнопки, она выделяется маркерами для изменения размера. При попытке перетащить кнопку за угловые маркеры будут изменяться, как ширина, так и высота кнопки. Если изменять размер, потянув за другие маркеры, то изменяется соответственно, либо высота, либо ширина.

Изменять размер кнопки можно так же и с помощью клавиатуры.

Для этого необходимо, выделить кнопку, т.е. щелкнуть по кнопке, чтобы появились маркеры. Нажать и удерживать клавишу Shift на клавиатуре, стрелками влево, вправо, вверх и вниз изменять размер элемента CommandButton.

Если же выделить кнопку и удерживая клавишу Ctrl на клавиатуре, стрелками влево, вправо, вверх и вниз, можно изменять место положения кнопки на форме.

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

Private Sub Command1_Click()
' Знак апострофа в коде указывает, что это комментарий, в данном случае
' текст выделяется зеленым цветом. Здесь будет располагаться код, который
' произойдет по событию Click элемента CommandButton
End Sub

Добавим в процедуру обработки события Click следующее: Command1 и поставим точку, мы увидим весь перечень свойств и методов элемента кнопка (Рис 3). Есть некоторые свойства, которые доступны лишь во время выполнения приложения. Эти свойства не отображаются в окне свойств Visual Basic.



Рис 3. Ниспадающее меню, содержащее методы и свойства элемента CommandButton

Свойства CommandButton

Appearance — объемный вид.

Значения:

  • 0 — Flat (плоский);
  • 1 — 3D (трехмерный).

BackColor — цвет фона кнопки, можно выбрать из двух вкладок System или Palette. Если цвет выбирается из системной вкладки, то он будет, зависеть от цветовой схемы Windows. В моей статье «Фундамент программы или основные свойства форм» я приводил цветовые константы Visual Basic. Использование констант при задаче цвета удобнее, проще запомнить vbWhite, чем 16777215. Т.е. Const vbWhite = 16777215 (&HFFFFFF) и задавать цвет можно как константой, так и значением &HFFFFFF.

Следовательно, два следующих кода выполнять одно и тоже действие, зададут белый цвет кнопке.

Command1.BackColor = vbWhite
Command1.BackColor = &HFFFFFF

Главное не забывать, чтобы изменить цвет необходимо установить свойство Style в Graphical.

Cancel — будет ли кнопка срабатывать по нажатию клавиши Escape. Т.е. кнопка реагирует на все нажатия клавиши Escape на клавиатуре. Только у одной кнопке на форме свойство Cancel, может быть True.

Значения:

  • True;
  • False.

Пример использования:

Private Sub Command1_Click()
End
End Sub

По нажатию клавиши Escape выполнится процедура обработки события Click, и приложение завершит работу.

Caption — заголовок кнопки, не путайте со свойством Name, свойство Caption задает текст, который будет отображаться на кнопке. Обычно несет информацию о том, какое действие произойдет после нажатия на кнопку.

Интересным моментом является, возможность, управления кнопкой с помощью клавиши ALT. В имени кнопки следует указать «амперсанд» (&) — «Нажми для &Старта». На кнопке знак амперсанд отображаться не будет, а буква, перед которой он был поставлен, будет подчеркнута. И назначена как горячая, при нажатии ALT + С — произойдет событие Click для кнопки. Не стоит забывать про раскладку клавиатуры.


Рис 4. Изображение кнопки, в имени которой поставлен знак «&».

CausesValidation — это свойство, нужно устанавливать, если вы будете использовать событие Validate, для текстового поля.

Значения:

  • True;
  • False.

Пример использования:

Private Sub Text1_Validate(Cancel As Boolean)
    If Not (IsNumeric(Text1.Text)) Then
        MsgBox "Введите в текстовое поле числа"
        Cancel = True
    End If
End Sub

В примере Cancel = True возвращает фокус обратно текстовому полю.

Default — когда, свойство установлено в True, кнопка окаймляется черной рамкой и реагирует на все нажатия клавиши Enter на клавиатуре. Только у одной кнопке на форме свойство Default, может быть True.

Значения:

  • True;
  • False.

DisabledPicture — изображение, которое будет на кнопке, пока она не доступна. Для расположения изображения, необходимо установить свойство Style в Graphical.

DownPicture — изображение, которое будет на кнопке, пока она нажата. Для расположения изображения, необходимо установить свойство Style в Graphical.

DragIcon — значок, который приобретет указатель мыши при нажатии на кнопку и движении курсором. Для работы свойства необходимо установить свойство DragMode в Automatic.

DragMode — определяет режим перетаскивания для объекта.

  • 0 — Manual; ручной.
  • 1 — Automatic; автоматический.

Enabled — блокировка кнопки. Если вам необходимо ограничить пользователя, т.е., чтобы он дождался выполнения какой либо операции, кнопку можно заблокировать.

Значения:

  • True;
  • False.

Font — тип шрифта, который будет установлен для текста на кнопке. Выбирается из списка.

FontBold — полужирный шрифт.

Значения:

  • True;
  • False.

FontItalic — курсив.

Значения:

  • True;
  • False.

FontName — название шрифта.

FontSize — размер шрифта в пунктах. Максимальное значение 2160.

FontStrikethru — перечеркнутый текст.

Значения:

  • True;
  • False.

FontUnderline — подчеркнутый текст.

Значения:

  • True;
  • False.

Height — высота кнопки.

Index — по умолчанию, свойству не присвоено ни какое значение. Используется при создании массивов элементов управления. Принимает значения от 0 и до нужного числа элементов, т.е. если необходимо использовать в массиве 3 кнопки, то свойства Index у кнопок будут 0, 1, 2 соответственно.

Вы спросите, а как использовать массивы элементов управления?

А вот как.

Создаем на форме одну кнопку, задаем свойству Index значение 0. Далее копируем кнопку в буфер и вставляем на форму. Свойство Index у вставленной кнопки будет равно 1. Создадим всего 3 кнопки.

Какие выгоды при использовании массивов элементов управления?

Упрощение написания программного кода, уменьшение объема написанного кода. Плюсов много.

Private Sub Form_Load()
Dim i As Byte
For i = 0 To 2
    Command1(i).Caption = "Кнопка № " & i
    Command1(i).ToolTipText = "Подсказка для кнопки № " & i
Next
End Sub

Используя массив, мы в 3 раза уменьшили объем кода. Т.е. мы не стали писать для каждой кнопки отдельный код, а написали один общий для всего массива элементов.

Вы спросите, а как обработать нажатие на кнопку?

Ведь при щелчках на любой из кнопок мы попадаем в код одной и той же процедуры.

Да именно так! Эта процедура обработки нажатий на любую из кнопок массива.

Private Sub Command1_Click(Index As Integer)

End Sub

А различаются события для разных элементов по индексам.

Private Sub Command1_Click(Index As Integer)
Label1 = "Нажата кнопка № " & Index
Label1.ToolTipText = "Подсказка для метки, нажата кнопка № " & Index
End Sub

Left — определяет расположение кнопки на форме, от левого края кнопки до левого края формы.

MouseIcon — выбор графического изображения курсора. Выбираем на диске нужный указатель и устанавливаем свойство MousePointer в 99 — Custom, после чего, когда указатель мыши будет перемещаться над кнопкой, он будет принимать выбранный вами вид.

MousePointer — вид указателя мыши. Числовое значение.

Name — имя кнопки. Все обращения и действия с кнопкой производятся с указанием имени. Обычно к имени кнопки добавляют префикс cmd.

OLEDropMode — как объект-приемник обрабатывает операцию перетаскивания.

Значения:

  • 0 — None; не обрабатывает.
  • 1 — Manual; вручную.

Picture — изображение, которое будет располагаться на кнопке, в обычном состоянии. Для расположения изображения, необходимо установить свойство Style в Graphical.

Style — стиль кнопки.

Значения:

  • 0 — Standart; обычный.
  • 1 — Graphical; графический.

TabIndex — при добавлении нового элемента управления на форму, элементы получают номер (если они могут получить фокус), от 0 и далее. Если расположить на форме несколько элементов и запустить проект, то по нажатию клавиши Tab фокус будет получать элемента за элементом. При загрузке формы фокус получит элемент, у которого свойство TabIndex = 0. Изменить это можно, если передать фокус нужному элементу при загрузке.

Private Sub Form_Activate()
Text1.SetFocus
End Sub

TabStop — будет ли фокус перемещаться на кнопку при нажатии клавиши Tab. Некоторые элементы управления не могут получить фокус, об этом не стоит забывать. Не видимые или заблокированные элементы так же не могут получить фокус.

Значения:

  • True;
  • False.

ToolTipText — всплывающая подсказка, которая будет появляться если задержать указатель мыши над кнопкой.

Top — определяет расположение кнопки на форме, от верхнего края кнопки до верхнего края формы.

Visible — видима ли кнопка на форме.

Значения:

  • True;
  • False.

Width — ширина кнопки.

Методы CommandButton

Drag — позволяет осуществлять операцию перетаскивания.

Move — позволяет перемещать элемент управления по форме.

Пример использования:

Private Sub Command1_MouseUp _
    (Button As Integer, _
     Shift As Integer, _
     X As Single, _
     Y As Single)
Command1.Move X + 100, Y + 100
End Sub

SetFocus — используется для передачи фокуса необходимой кнопке.

ZOrder — с помощью метода, можно определить порядок перекрытия объектов на форме.

Пример использования:

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

Private Sub Command2_Click()
Command1.ZOrder 0
End Sub

Private Sub Command3_Click()
Command1.ZOrder 1
End Sub

По нажатию кнопок 2 и 3, по очереди, кнопка, то появляется, то исчезает. Она не становится не видимой, просто меняется ее местоположение, над картинкой и под картинкой. Аналогичное действие можно совершить и в режиме редактирования кода. Расположите картинку так, чтобы она перекрывал кнопку, нажмите правую кнопку мыши на любом из этих элементов. И при помощи Send to Back и Bring to Front измените расположение объекта.

События CommandButton

Click — наиболее часто используемое событие. Происходит при нажатии на кнопку. Если кнопка имеет фокус, событие происходит по нажатию клавиши «Пробел» на клавиатуре. Если свойства Default и Cancel установлены в True, то соответственно событие происходит, по нажатию клавиш Enter и Escape.

GotFocus — происходит когда кнопка получает фокус, при нажатии клавиши Tab или с помощью метода SetFocus.

KeyDown — происходит, когда кнопка имеет фокус и пользователь нажимает клавишу на клавиатуре.

KeyPress — происходит, когда пользователь нажал и отпустил клавишу, можно получить код нажатой клавиши.

Пример использования:

Private Sub Command1_KeyPress(KeyAscii As Integer)
Label1 = KeyAscii
End Sub

KeyUp — происходит, когда кнопка имеет фокус и пользователь отпускает клавишу на клавиатуре.

LostFocus — происходит во время передачи фокуса от кнопки к другому элементу.

MouseDown — происходит во время нажатия кнопки мыши на кнопке.

MouseMove — происходит при перемещении указателя мыши над кнопкой.

MouseUp — происходит лишь тогда, когда пользователь после нажатия, отпускает клавишу мыши. Лучше использовать вместо события Click, т.к. после нажатия пользователь может передумать и захочет отменить действие.

События MouseDown, MouseMove и MouseUp имеют одинаковые параметры:

Command1_MouseDown(Button As Integer,
                   Shift As Integer,
                   X As Single,
                   Y As Single)

Command1_MouseMove(Button As Integer,
                   Shift As Integer,
                   X As Single,
                   Y As Single)

Command1_MouseUp(Button As Integer,
                 Shift As Integer,
                 X As Single,
                 Y As Single)

Button — содержит номер клавиши мыши.

Константы:

Const vbLeftButton = 1
Const vbMiddleButton = 4
Const vbRightButton = 2

Пример использования:

If Button = 1 Then Text1 = _
    "Ты нажал левую кнопку мыши"
If Button = 4 Then Text1 = _
    "Ты нажал среднюю кнопку мыши"
If Button = 2 Then Text1 = _
    "Ты нажал правую кнопку мыши"

Shift — содержит информацию о состоянии клавиш ALT, CTRL и SHIFT.

Константы:

Const vbAltMask = 4
Const vbCtrlMask = 2
Const vbShiftMask = 1

Пример использования:

If Shift = vbShiftMask Then Text1 = _
    "Ты нажал кнопку мыши, удерживая Shift"
If Shift = vbAltMask Then Text1 = _
    "Ты нажал кнопку мыши, удерживая Alt"
If Shift = vbCtrlMask Then Text1 = _
    "Ты нажал кнопку мыши, удерживая Ctrl"
If (Shift And (vbCtrlMask Or vbShiftMask)) _
    = (vbCtrlMask Or vbShiftMask) Then Text1 = _
    "Ты нажал кнопку мыши, удерживая Ctrl и Shift"

X, Y — координаты указателя мыши, где произошло событие.

Данная статья не является учебным пособием или полным руководством к использованию — это обзор наиболее часто используемых свойств, событий и методов элемента управления CommandButton . Статья рассчитана на начальный уровень знания программирования на языке Visual Basic 6.


Оглавление

Понравилась статья? Поделить с друзьями:
  • Vba excel on error примеры
  • Vba excel on error resume next описание
  • Vba excel on error resume next не работает
  • Vba excel on error goto next
  • Vba excel on error exit