VBA Hamster編
【3】テキストボックスで日付や数値を矢印キーで増減させる
当日やゼロのように初期値が存在する場合は、テキストボックスで日付や数値を上下の矢印キーで値を増減をさせると
便利になる場合も多い。これを実現するにはKeyDownイベントを利用して押されたキーコードとシフトキーが同時に
押されたかを判定する。
仕様は上矢印キーで+1、下矢印キーで−1とし、シフトキーが同時に押された場合は10増減する。
尚、数字、日付にはエラーが無いことを事前にBeforeUpdateイベンでチェックしておく必要がある。
'■ 以下ユーザフォームに記述する。テキストボックス名:TB_日付
Private Sub TB_日付_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Call YAKey(TB_日付, KeyCode, Shift, 1) '日付なので第三引数は1にする
End Sub
'以下標準モジュールに記述
'■
Sub YAKey(ob As Control, Ky As Variant, Sh As Variant, md As Long)
'引数md 数値:0 , 日付:1
Dim wv As Long
If Sh = 0 Then 'シフトキーは押されていない
wv = 1
Else
wv = 10
End If
Select Case Ky
Case vbKeyDown
If md = 0 Then
ob.Value = ob.Value - wv
Else
ob.Value = CDate(ob.Value) - wv
End If
Ky = 0
Case vbKeyUp
If md = 0 Then
ob.Value = ob.Value + wv
Else
ob.Value = CDate(ob.Value) + wv
End If
Ky = 0
End Select
End Sub