質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

2回答

5111閲覧

VBで文字列の一部だけ色を変えたい

syameimaru

総合スコア181

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2017/07/25 07:22

編集2017/07/25 07:30

###前提・実現したいこと
VBで,CSVデータを配列に取り込んで,RichTextBoxに貼り付けております。
このCSVデータの中に一部だけ色を変えて表示させたい部分があります。
その色を変えたい部分を出来れば、HTMLのように

「ボウリングは、<font color="カラーコード">木曜日</font>です」←(ひとつの配列の区画の中)
みたいな感じでRichTextBox内の一部の文字の色を変えたいです。

CSVデータの中身
CSVデータの中身

また、他にいい方法がありましたら、ご教授ください。

###補足情報(言語/FW/ツール等のバージョンなど)
RichTextBoxをこのようにlist化しています

VB

1Dim mytxt As New List(Of RichTextBox) 2mytxt.Add(RichTextBox1) 3mytxt.Add(RichTextBox2) 4mytxt.Add(RichTextBox3) 5~~~~~~~(略)~~~~~~~~~~~~~ 6mytxt53.Add(RichTextBox53)

###環境
Visual Studio 2015
言語 VB
win7 sp1 64bit

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

mytxt(i)をRichTextBox1にして試したところ動作しているようです。
配列の扱い方を確認してみてはどうでしょうか?

投稿2017/07/26 06:51

koguma98

総合スコア288

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syameimaru

2017/07/26 07:00 編集

ありがとうございます RichTextBox4.Select(1, 4) RichTextBox4.SelectionColor = Color.Red で試してみたのですがやはり開始文字位置が0だと色は変わるがそのテキスト全ての文字色が変わって、 0以外だと色すら変わってくれませんでした。
koguma98

2017/07/26 15:42

環境に依存するのかもしれませんね... 当方の環境で新しいプロジェクトを作成し、 ButtonとRichTextBoxを貼り付け、 Buttonのイベントハンドラに下記のコードを貼り付けたところ、 テキスト色が変わっております。 RichTextBox1.Text = "abcdefg" RichTextBox1.Select(2, 2) RichTextBox1.SelectionColor = Color.Red 上記手順を試してみてもらえませんでしょうか? もし、この単純な手順でも色が変わらないようでしたら、環境に依存する問題かもしれません...
syameimaru

2017/07/26 23:10

ありがとうございました 上記のように新しく作り、上記のコードを使用したのですが、「abcdefg」全ての文字色が変わってしまいました。 環境の問題ということもあるのですね...
guest

0

vbnet

1RichTextBox1.Select(2, 5) 2RichTextBox1.SelectionColor = Color.Red
  • Select で色を変えたい文字の開始位置と長さを指定します。
  • SelectionColor で色を指定します。

投稿2017/07/26 02:31

koguma98

総合スコア288

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

syameimaru

2017/07/26 04:18 編集

回答ありがとうございます これを参考に Dim s As String = mytxt(i).Text Dim first As Integer = 0 Dim Last As Integer = 0 '<red>を最初に見つけた場所 first = s.IndexOf("<red>")       '<red>を最後に見つけた場所 Last = s.LastIndexOf("<red>") Last = Last - first If Not first = -1 Then first = 0 Last = 0 first = s.IndexOf("<red>") Last = s.LastIndexOf("<red>") Last = Last - first '文字列を検索して、選択状態にする '背景色を赤にする mytxt(i).Select(first, Last) mytxt(i).SelectionColor = Color.Red End If テキストボックスの中身 a<red>揖斐の間<red>a こんな感じで<red>で囲まれた文字を変えられると思ったのですが 色が変わりませんでした。 何か違っているところがあったら教えてください。
koguma98

2017/07/26 04:36

変数 i には何が入っているでしょうか? RichTextBox1に対する操作を行う場合は i = 0 となるのではないかと思います。 # すべてのコードを見てないので、推測ですが... 直接関係ないですが、first は<red>分足す必要がありますね。 first = s.IndexOf("<red>") + 5
syameimaru

2017/07/26 06:55 編集

ありがとうございます。 RichTextBox1から45まであり、それをmytxtという形でlist化しています。 変数iは1から45が入るようになっています。 x=0以外の数値 mytxt(i).Select(0, x) mytxt(i).SelectionColor = Color.Red この場合だと色は変わりましたが、指定した文字数だけ変えるということが出来ませんでした。 しかし x=0以外の数値 mytxt(i).Select(1, x) mytxt(i).SelectionColor = Color.Red 開始の場所が0以外だと色すら変わりませんでした。 何度も申し訳ございません、間違いがございましたら教えてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問