タイマーを使用して、文字列をテキストボックス①に入力し、ボタンを押すとテキストボックス
②に文字列が右から左にスクロールさせ、さらにテキストボックス①の文字列を変更してボタン
を押した場合、前の文字列が流れ終わってから新しい文字列が流れるようにさせるにはどうした
らいいでしょうか?
ぜひ知恵をお貸し下さい。おねがいします。
とりあえず、タイマーでスクロールさせるソースです。
ご参考までに。
Private Sub Command1_Click()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim s As String
s = Text1.Text
If s = " Then
Timer1.Enabled = False
Exit Sub
End If
s = Right(s, Len(s) - 1)
Text1.Text = s
End Sub
ありがとうございます。早速試してみました。しかし、テキストボックスが右揃えのせいか、先
頭の文字から消えていくだけのようです。そしてボタンを押さない限りスクロールしつづけたい
ので、もう一度教えてください。
自分でも考えて下さいね。
Private Sub Command1_Click()
Timer1.Interval = 100
Timer1.Enabled = Not (Timer1.Enabled)
End Sub
Private Sub Form_Load()
Text1.Text = + Text1.Text
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Dim s, s2 As String
s = Text1.Text
If s = " Then
Timer1.Enabled = False
Exit Sub
End If
s2 = Left(s, 1)
s = Right(s, Len(s) - 1) + s2
Text1.Text = s
End Sub
テキストボックスの大きさに合わせてスクロールさせることはできないのでしょうか?
できます。
仕事が一段落したので現実逃避を。
テキストボックスに入る文字数を把握しておけば、
スペースの個数を調節することで御要望に近いものができます。
どんな文字列、フォント、テキストボックスのサイズにも対応しようとすると、
VBの機能のみでのやり方を私は知りません。多分ないと思います。
テキストボックスのサイズや、あるフォントである文字列を表示した時のサイズなどは、
APIという関数群を使うと自由に取得できますが、VBに比べて大分難しいです。