投稿者 たすく  (社会人) 投稿日時 2009/9/8 21:36:20


いつもお世話になっております。

テキストボックスの改行を5行までと制限したいのですが、どうしたらよろしいでしょうか?
5行目にフォーカスがある状態でEnterキー入力を無効にしたいのですが。
ネットを参考にし、2行までの改行はできました。

Private Sub TextA_KeyPress(KeyAscii As Integer)

If KeyAscii = vbKeyReturn Then
    If InStr(Me.TextA.Text, vbCrLf) <> 0 Then
        KeyAscii = 0
    End If
End If
End Sub


また、できれば、テキストボックスに6行以上の文章を貼り付けた際、
5行までの表示する処理をいれたいです。
今のところ、下記のコードで2行までの表示はできています。

Private Sub TextA_Change()

Dim rPos As Long
Dim lPos As Long

lPos = InStr(Me.TextA.Text, vbCrLf)
If lPos <> 0 Then
rPos = InStrRev(Me.TextA.Text, vbCrLf)
If lPos <> rPos Then
Me.TextA.Text = Left$(Me.TextA.Text, rPos) & Mid$(Me.TextA.Text, rPos)
Me.TextA.SelStart = Len(Me.TextA.Text)
End If
End If
End sub

 

それぞれどこを修正するばよいのでしょうか?
ご教授のほど、よろしくお願いいたします。