Maybe not cool, and probably utterly useless but here it is the userform mouse keyboard. See Atached. New Version Further Below.
Try using the shift key while clicking the buttons.
If someone finds a use for it please let me know, I might even make some improvements.
Userfrom code:
Code
Dim colKeyboardKeys As Collection
Private Sub UserForm_Initialize()
Dim clsBtnKey As clsBtnKeys
Dim ctlLoop As MSForms.Control
Set colKeyboardKeys = New Collection
For Each ctlLoop In Me.Frame1.Controls
If TypeOf ctlLoop Is MSForms.CommandButton Then
Set clsBtnKey = New clsBtnKeys
Set clsBtnKey.Control = ctlLoop
colKeyboardKeys.Add clsBtnKey
End If
Next ctlLoop
End Sub
Private Sub cbnEnter_Click()
Me.TextBox1.Text = Me.TextBox1.Text & Chr(10)
End Sub
Private Sub cbnBackSpace_Click()
Me.TextBox1.Value = Left(Me.TextBox1.Value, Len(Me.TextBox1.Value) - 1)
End Sub
Display More
Class Module Code:
Code
Option Explicit
Private WithEvents btnKey As MSForms.CommandButton
Public Property Set Control(obtNew As MSForms.CommandButton)
Set btnKey = obtNew
End Property
Private Sub btnKey_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
With UFKeyboard.TextBox1
.Value = .Value & IIf(Shift = 0, Left(btnKey.Tag, 1), Mid(btnKey.Tag, 2, 2))
End With
End Sub
Private Sub Class_Terminate()
Set btnKey = Nothing
End Sub
Display More