- 締切済み
セル内の文字列強調
検索してセル内の任意の文字のみを強調(赤太字など)させることは出来ますでしょうか。 任意の文字については複数の文字列を一気に検索、強調表示させたいのです。 一文字の場合は下記で動作させることができました。 ◆文字列“a”のみに色を付ける -------------------------------- Sub test02() Dim c As Range For Each c In Selection s = 1 Do x = InStr(s, c, "a") If x = 0 Then GoTo p02 c.Characters(x, 1).Font.ColorIndex = 3 MsgBox x s = x + 1 Loop While Not x = 0 p02: Next End Sub -------------------------------- 複数の文字に色をつけるところでまだ悩んでいます。 やり方がわからず恐縮ですが、お教え頂けると有難いです。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- onlyrom
- ベストアンサー率59% (228/384)
検索値の文字数を変数にとっておき、 次の検索開始位置にそれをプラスしてやればいいですね。 '--------------------------- Sub Test() Dim c As Range Dim s As Integer Dim x As String Dim myStr As String Dim myLen As Integer myStr = "abc" myLen = Len(myStr) For Each c In Selection s = 1 Do x = InStr(s, c.Value, myStr) If x = 0 Then Exit Do c.Characters(x, myLen).Font.ColorIndex = 3 s = x + myLen Loop While Not x = 0 Next c End Sub '------------------------------------------------- それから、変数cはrangeオブジェクトですからその値を利用するときは、 それを明示するために、Valueプロパティを使うことをお勧めします。 また、Gotoステートメントもなくべく使わないようにしましょう。 以上。
- marbin
- ベストアンサー率27% (636/2290)
#1です。 終了位置ではなく、長さでしたね。 失礼しました。
- xls88
- ベストアンサー率56% (669/1189)
参考にしてください。 VBA 文字列操作関数 http://members.jcom.home.ne.jp/rex-uchida/vba123.htm
お礼
ウェブのアドレスありがとうございます。 参考にさせて頂きます!
- marbin
- ベストアンサー率27% (636/2290)
一般機能でセルの文字列の一部に色を付けることが出来ます。 この作業をマクロの自動記録してみてください。 参考になると思います。 あとは変数で開始位置、終了位置を指定します。
お礼
ご教授ありがとうございます。 マクロで自動記録後に、開始位置と長さを変数で指定ですね。 色々試しながらやってみたいと思います。
お礼
細かくご教授頂きありがとうございます! 早速試してみたいと思います。