Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Подсказка, что включён CapsLock. - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Подсказка, что включён CapsLock.
merzavec_78 Дата: Среда, 26.11.2025, 04:42 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

2013
Подскажите, пожалуйста, гении VBA, а можно ли сделать, чтоб при внесении данных в UserForm была подсказка, что включён CapsLock?
 
Ответить
СообщениеПодскажите, пожалуйста, гении VBA, а можно ли сделать, чтоб при внесении данных в UserForm была подсказка, что включён CapsLock?

Автор - merzavec_78
Дата добавления - 26.11.2025 в 04:42
and_evg Дата: Среда, 26.11.2025, 07:21 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 491
Репутация: 88 ±
Замечаний: 0% ±

Excel 2007
И Вам добрый день
[vba]
Код
Option Explicit
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Public Function CapsLockOn() As Boolean
    Dim iKeyState As Integer
    iKeyState = GetKeyState(vbKeyCapital)
    CapsLockOn = (iKeyState = 1 Or iKeyState = -127)
End Function
Private Sub cmdIsCapsOn_Click()
    If CapsLockOn = True Then
        MsgBox "Yes, Capslock is on!"
    Else
        MsgBox "No, Capslock is NOT on!"
    End If
End Sub
[/vba]
 
Ответить
СообщениеИ Вам добрый день
[vba]
Код
Option Explicit
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Public Function CapsLockOn() As Boolean
    Dim iKeyState As Integer
    iKeyState = GetKeyState(vbKeyCapital)
    CapsLockOn = (iKeyState = 1 Or iKeyState = -127)
End Function
Private Sub cmdIsCapsOn_Click()
    If CapsLockOn = True Then
        MsgBox "Yes, Capslock is on!"
    Else
        MsgBox "No, Capslock is NOT on!"
    End If
End Sub
[/vba]

Автор - and_evg
Дата добавления - 26.11.2025 в 07:21
merzavec_78 Дата: Среда, 26.11.2025, 11:13 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

2013
Спасибочки!!!! Сегодня попробую!!!!
 
Ответить
СообщениеСпасибочки!!!! Сегодня попробую!!!!

Автор - merzavec_78
Дата добавления - 26.11.2025 в 11:13
merzavec_78 Дата: Понедельник, 01.12.2025, 19:57 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

2013
Что-то совсем никак работать не хочет..... Сначала была ошибка в верхней строке:
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Добавил PtrSafe - ошибка ушла.
Но всё-равно не работает
 
Ответить
СообщениеЧто-то совсем никак работать не хочет..... Сначала была ошибка в верхней строке:
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Добавил PtrSafe - ошибка ушла.
Но всё-равно не работает

Автор - merzavec_78
Дата добавления - 01.12.2025 в 19:57
msi2102 Дата: Вторник, 02.12.2025, 10:35 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 454
Репутация: 135 ±
Замечаний: 0% ±

Excel 2019
Но всё-равно не работает

Посмотрите ТУТ, может поможет
У меня все работает :)
Не гарантирую, что будет работать, но попробуйте так
[vba]
Код
'Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#If VBA7 Then
    Private Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As LongPtr) As Integer
#Else
    Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#End If

Public Function CapsLockOn() As Boolean
    Dim iKeyState As Integer
    iKeyState = GetKeyState(vbKeyCapital)
    CapsLockOn = (iKeyState = 1 Or iKeyState = -127)
End Function

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Me.TextBox1.BackColor = RGB(255, 255, 255)
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If CapsLockOn = True Then
        Me.TextBox1.BackColor = RGB(255, 0, 0)
    Else
        Me.TextBox1.BackColor = RGB(255, 255, 255)
    End If
End Sub
[/vba]
К сообщению приложен файл: caps_lock.xlsm (21.0 Kb)


Сообщение отредактировал msi2102 - Вторник, 02.12.2025, 13:17
 
Ответить
Сообщение
Но всё-равно не работает

Посмотрите ТУТ, может поможет
У меня все работает :)
Не гарантирую, что будет работать, но попробуйте так
[vba]
Код
'Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#If VBA7 Then
    Private Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As LongPtr) As Integer
#Else
    Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#End If

Public Function CapsLockOn() As Boolean
    Dim iKeyState As Integer
    iKeyState = GetKeyState(vbKeyCapital)
    CapsLockOn = (iKeyState = 1 Or iKeyState = -127)
End Function

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Me.TextBox1.BackColor = RGB(255, 255, 255)
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If CapsLockOn = True Then
        Me.TextBox1.BackColor = RGB(255, 0, 0)
    Else
        Me.TextBox1.BackColor = RGB(255, 255, 255)
    End If
End Sub
[/vba]

Автор - msi2102
Дата добавления - 02.12.2025 в 10:35
merzavec_78 Дата: Среда, 03.12.2025, 22:09 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

2013
ЗАМЕЧАТЕЛЬНО!!! РАБОТАЕТ!!! СПАСИБО!!!
 
Ответить
СообщениеЗАМЕЧАТЕЛЬНО!!! РАБОТАЕТ!!! СПАСИБО!!!

Автор - merzavec_78
Дата добавления - 03.12.2025 в 22:09
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!