[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/02/26(Sun) 16:12
投稿者名:やまめ
Eメール:
URL :
タイトル:
テキストボックス中の所定の文字列のみの色指定
こんにちは、こんなことはできるのでしょうか?
(あるいは、容易に他のコントロールで実現可能か)
どなたか教えてください。よろしくお願いします。

<やりたいこと>
テキストBOX中に表示する文字列を所定の文字列だけ色を変えたい。

(具体例)
運転中の実行ログと表示するのに、以下のようにエラーの時だけ赤色にしたい。

日時:処理1終了
日時:処理2終了
日時:処理1エラー  ←ここの行だけ赤色としたい。
日時:処理2終了    メッセージは、運転中は追加していく。
日時:処理1終了


<環境>
WinXP、VB6.0

投稿時間:2006/02/26(Sun) 16:42
投稿者名:Blue
Eメール:
URL :
タイトル:
Re: テキストボックス中の所定の文字列のみの色指定
リッチテキストボックスを利用するのはどうでしょうか?
hhttp://www.bcap.co.jp/hanafusa/VBHLP/rithfram.htm

投稿時間:2006/02/26(Sun) 17:14
投稿者名:やまめ
Eメール:
URL :
タイトル:
Re^2: テキストボックス中の所定の文字列のみの色指定
ありがとうございます。早速やってみましたがうまくいきません。

HELPには、「リッチテキスト ボックス コントロール内でテキストが選択されていない場合は、このプ
ロパティを設定すると、カーソル位置から新しく入力するテキストに指定した色が使われます。」とあ
るので、これでいけると思うのですが。

<やってみたこと>

Private Sub Command1_Click()
    RichTextBox1.SelColor = vbBlack
    RichTextBox1.Text = RichTextBox1.Text + "ABC" + vbCr + vbLf
End Sub

Private Sub Command2_Click()
    RichTextBox1.SelColor = vbRed
    RichTextBox1.Text = RichTextBox1.Text + "xyz" + vbCr + vbLf

End Sub

ずっと、黒字表示となる。zyzのみ赤色になるつもりだったのですが。
直接、BOXにテキスト入力したものも黒です。

きっと、とても初歩的な問題だと思うのですが・・・。
すみませんが、よろしくお願いします。

投稿時間:2006/02/26(Sun) 17:24
投稿者名:Blue
Eメール:
URL :
タイトル:
Re^3: テキストボックス中の所定の文字列のみの色指定
SelColorって確かSelStart+SelLengthで設定した文字のいろが変わるんじゃなかったかなぁ。

Private Sub Command1_Click()
    With RichTextBox1
        .Text = "ABCD" & vbCrLf
        .Text = .Text & "あいう" & vbCrLf

        ' ABCDを赤にする
        .SelStart = 0
        .SelLength = 4
        .SelColor = vbRed
    End With
End Sub

あ、しらべたら SelStartで任意の位置にしてから、SelText で文字列を設定すると色変わりますね。
Private Sub Command1_Click()
    With RichTextBox1
        .Text = .Text & "ABCD" & vbCrLf
        .SelStart = Len(.Text)
        .SelColor = vbRed
        .SelText = "あいう"
        .SelColor = vbBlack
    End With
End Sub

投稿時間:2006/02/26(Sun) 17:44
投稿者名:やまめ
Eメール:
URL :
タイトル:
Re^4: テキストボックス中の所定の文字列のみの色指定
ありがとうございます。

試してみます。