• 締切済み

セル内の文字列強調

検索してセル内の任意の文字のみを強調(赤太字など)させることは出来ますでしょうか。 任意の文字については複数の文字列を一気に検索、強調表示させたいのです。 一文字の場合は下記で動作させることができました。 ◆文字列“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 -------------------------------- 複数の文字に色をつけるところでまだ悩んでいます。 やり方がわからず恐縮ですが、お教え頂けると有難いです。

みんなの回答

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.4

検索値の文字数を変数にとっておき、 次の検索開始位置にそれをプラスしてやればいいですね。   '--------------------------- 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ステートメントもなくべく使わないようにしましょう。 以上。  

noripdx
質問者

お礼

細かくご教授頂きありがとうございます! 早速試してみたいと思います。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

#1です。 終了位置ではなく、長さでしたね。 失礼しました。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

参考にしてください。 VBA 文字列操作関数 http://members.jcom.home.ne.jp/rex-uchida/vba123.htm

noripdx
質問者

お礼

ウェブのアドレスありがとうございます。 参考にさせて頂きます!

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

一般機能でセルの文字列の一部に色を付けることが出来ます。 この作業をマクロの自動記録してみてください。 参考になると思います。 あとは変数で開始位置、終了位置を指定します。

noripdx
質問者

お礼

ご教授ありがとうございます。 マクロで自動記録後に、開始位置と長さを変数で指定ですね。 色々試しながらやってみたいと思います。

関連するQ&A