Member 12693503 Ответов: 1

Как добавить баннер cue в текстовое поле userform в VBA?


Я создаю форму пользователя в VBA, но мне нужна подсказка в стиле cue banner (например, "DD/MM/YYYY" и т. д.) В некоторых полях. Я могу найти VB.NET код для этой функции, но не могу найти решение VBA. Есть идеи?

Что я уже пробовал:

Не так уж много на самом деле, немного поискал в интернете, но ничего не нашел

1 Ответов

Рейтинг:
1

Richard Deeming

Вам нужно отправить EM_SETCUEBANNER сообщение на пульт управления.

Этот код находится в VB6, но не должно быть слишком сложно заставить его работать в VBA:
[Vbnet Text API] SendMessage: используйте Cue-баннеры для приглашения пользователей[^]

Private Const ECM_FIRST As Long = &H1500
Private Const EM_SETCUEBANNER As Long = (ECM_FIRST + 1)

Private Declare Function SendMessage Lib "user32" _
   Alias "SendMessageA" _
  (ByVal hwnd As Long, _
   ByVal wMsg As Long, _
   ByVal wParam As Long, _
   lParam As Any) As Long

Public Sub SetCueBanner(ByVal hwnd As Long, ByVal banner As String)
    banner = StrConv(banner, vbUnicode)
    Call SendMessage(hwnd, EM_SETCUEBANNER, 0&, ByVal banner)
End Sub

Как уже упоминалось в статье, вам также может понадобиться позвонить InitCommonControls и добавьте манифест в свое приложение. Однако это может не относиться к VBA, в зависимости от хоста.


Maciej Los

5ед!

Member 11803607

не работает в vba и возвращает unicode вместо " user"