Option Explicit Private mobjWS As Worksheet 'Sheet1:基本情報 '閉じるボタン Private Sub cmdEND_Click() gFlg = True Unload Me End Sub 'OKボタン Private Sub cmdOK_Click() If gFlg = False Then Call LetData Unload Me ElseIf gFlg = True Then Call LetData If Me.cmdOK.Enabled = True Then Me.cmdOK.Enabled = False End If End Sub 'フォーカスが当ったとき Private Sub txtName_Enter() With Me.txtName .SelStart = 0 .SelLength = Len(.Text) .BackColor = RGB(255, 255, 0) .TextAlign = 1 .IMEMode = 4 End With End Sub 'フォカスが外れたとき Private Sub txtName_Exit(ByVal Cancel As MSForms.ReturnBoolean) With Me.txtName .BackColor = RGB(255, 255, 255) .TextAlign = 1 .IMEMode = 0 End With End Sub '何かキーが押されたら Private Sub txtName_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If Me.txtName.Text <> "" Then If Me.cmdOK.Enabled = False Then Me.cmdOK.Enabled = True Else If Me.cmdOK.Enabled = True Then Me.cmdOK.Enabled = False End If End Sub 'フォームロード時 Private Sub UserForm_Initialize() Call NewData End Sub 'フォームクローズ時 Private Sub UserForm_Terminate() Set mobjWS = Nothing End Sub 'データを書き込み Private Sub LetData() Dim intMsg As Integer 'メッセージの戻り値 intMsg = MsgBox("登録しますか。", 32 + 4, "給与計算システム") If intMsg = 6 Then mobjWS.Cells(6, 1).Value = Me.txtName.Text MsgBox "正常に登録しました。", 64 + 0, "給与計算システム" End If End Sub '新しいデータ Private Sub NewData() Set mobjWS = Workbooks(gstrName).Worksheets("Sheet1") If gFlg = False Then Me.cmdOK.Caption = "次へ >>" Me.txtName.Text = "" ElseIf gFlg = True Then Me.cmdOK.Caption = "登録" Me.txtName.Text = mobjWS.Cells(6, 1).Value End If End Sub