|
▼SS さん:
こんにちは・・・
いろいろとアドバイスありがとうございました
あれから、ながーい月日が経ってしまいました
いろいろと悪戦苦闘しながらやってみたのですが、いまいちうまくいかず、
考え方を変えて、
指定した桁数以上の時はその文字を削除する
といった感じのマクロになりました
結局妥協・・・も少しありますが、こんな感じです
参考までに・・・
Private Sub TextBox1_Change()
’10桁をこえて入力すると、11桁目の文字を削除してしまうというマクロです
Dim txt1
Dim txt2
txt1 = Split(TextBox1, vbCrLf)
For i = 0 To UBound(txt1, 1)
If Len(txt1(i)) > 10 Then
txt1(i) = Left(txt1(i), 10)
End If
Next i
For u = 0 To UBound(txt1, 1)
If u = 0 Then
txt2 = txt1(u)
Else
txt2 = txt2 & vbCrLf & txt1(u)
End If
Next u
TextBox1.Text = txt2
End Sub
Private Sub UserForm_Initialize()
UserForm3.Caption = "test"
With TextBox1
.Value = ""
.MultiLine = True
.EnterKeyBehavior = True
.SetFocus
End With
End Sub
>こんにちは、前回の回答では誤解させてしまったみたいですが
>私は興味あるものに楽しんで回答していますので気にしないで下さい。
>それで不具合が気になっていたので確認するとCtrl+Enterの改行は
>vbLfになるようです。vbLfとvbCrLfの混在が問題だったようです。
>格好悪いですが以下の変換をすることでできました。
> '文字数設定
> n = 10
> txt1 = TextBox1.Text
> txt1 = Replace(txt1, vbCr, "")
> txt1 = Replace(txt1, vbLf, vbCrLf)
>改行をvbLfだけでは上手くいきませんでしたが勘違いかもしれません。
>かなさんが完成させたものを紹介して頂けると私のスキルUPにも
>役立つと思いますので宜しくお願いします。
>
>>▼SS さん:
>>
>>ありがとうございます
>>すみません・・・お忙しいところお手間をとらせてしまって・・・
>>
>>SSさんのを参考に、私なりに考えてみます
>>
>>本当に助かりました
>>
>>ありがとうございました
|
|