|
|
Dim gstrFieldData As String
' ****************************************************
' 実行時、最初に処理されるイベント
' ****************************************************
Private Sub Form_Load()
Call BodyProtect
Call InitControl
End Sub
' ****************************************************
' 入力コントロール初期設定
' ****************************************************
Private Function InitControl()
With txt処理区分
.MaxLength = 1
End With
End Function
' ****************************************************
' 処理区分を入力時の初期値を保存
' ****************************************************
Private Sub txt処理区分_GotFocus()
gstrFieldData = txt処理区分.Text
End Sub
' ****************************************************
' キーボードから直接数値以外入力できないようにする
' ****************************************************
Private Sub txt処理区分_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Chr(KeyAscii)) _
And KeyAscii <> vbKeyBack then
KeyAscii = 0
End If
End Sub
' ****************************************************
' 処理区分に数値以外を入力できないようにする
' ****************************************************
Private Sub txt処理区分_Change()
Dim strWork As String
strWork = txt処理区分.Text
' FEP から全角を入力時
If LenB(StrConv(strWork, vbFromUnicode)) <> Len(strWork) Then
txt処理区分.Text = gstrFieldData
Exit Sub
End If
' FEP から半角を入力時、但し未入力状態はOK
If Not IsNumeric(txt処理区分.Text) And txt処理区分.Text <> "" Then
txt処理区分.Text = gstrFieldData
Exit Sub
End If
gstrFieldData = txt処理区分.Text
End Sub
| |
|
|
|
|
Dim gstrFieldData As String
Dim gbFieldChange As Boolean
' ****************************************************
' 入力コントロール初期設定
' ****************************************************
Private Function InitControl()
With txt処理区分
.MaxLength = 1
End With
With txtコード
.MaxLength = 4
End With
End Function
' ****************************************************
' 処理区分を入力時の初期値を保存
' ****************************************************
Private Sub txtコード_GotFocus()
gstrFieldData = txtコード.Text
gbFieldChange = False
End Sub
' ****************************************************
' キーボードから直接数値以外入力できないようにする
' ****************************************************
Private Sub txtコード_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Chr(KeyAscii)) _
And KeyAscii <> vbKeyBack then
KeyAscii = 0
End If
End Sub
' ****************************************************
' 処理区分に数値以外を入力できないようにする
' ****************************************************
Private Sub txtコード_Change()
Dim strWork As String
strWork = txtコード.Text
' FEP から全角を入力時
If LenB(StrConv(strWork, vbFromUnicode)) <> Len(strWork) Then
txtコード.Text = gstrFieldData
Exit Sub
End If
' FEP から半角を入力時、但し未入力状態はOK
If Not IsNumeric(txt処理区分.Text) And txt処理区分.Text <> "" Then
txtコード.Text = gstrFieldData
Exit Sub
End If
gstrFieldData = txtコード.Text
gbFieldChange = True
End Sub
' ****************************************************
' コードを前ゼロ編集する
' ****************************************************
Private Sub txtコード_Validate(Cancel As Boolean)
If gbFieldChange Then
txtコード.Text = Format(Val(txtコード.Text), "0000")
End If
End Sub
| |
|
|
TAB キーのかわりに ENTER キーを使えるようにする |
|
|
VOID keybd_event(
BYTE bVk, // virtual-key code
BYTE bScan, // hardware scan code
DWORD dwFlags, // flags specifying various function options
DWORD dwExtraInfo // additional data associated with keystroke
);
| |
|
標準モジュール
|
Public Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Public Const VK_TAB = &H9
Public Const KEYEVENTF_EXTENDEDKEY = &H1
Public Const KEYEVENTF_KEYUP = &H2
| |
|
|
' ****************************************************
' 実行時、最初に処理されるイベント
' ****************************************************
Private Sub Form_Load()
Call BodyProtect
Call InitControl
' フォームがキーコードを常に受け取る設定
Me.KeyPreview = True
End Sub
' ************************************************************
' Enter -> Tab
' ************************************************************
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
Call keybd_event(VK_TAB, 0, 0, 0)
Call keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0)
End If
End Sub
| |
|
|
|