Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4266 / 13646 ツリー ←次へ | 前へ→

【57606】セル内文字着色 defic 08/9/4(木) 15:43 質問[未読]
【57607】Re:セル内文字着色 マクロマン 08/9/4(木) 15:55 発言[未読]
【57609】Re:セル内文字着色 マクロマン 08/9/4(木) 20:25 発言[未読]
【57610】Re:セル内文字着色 kanabun 08/9/4(木) 21:26 発言[未読]

【57606】セル内文字着色
質問  defic  - 08/9/4(木) 15:43 -

引用なし
パスワード
   一つのセルに複数の名前が入ったセルがいくつもあり

田中一郎・佐藤二郎
佐藤二郎・鈴木三郎
田中一郎・鈴木三郎
田中一郎・佐藤次郎・鈴木三郎

このようになっているセルがいくもあり
このセル内で検索を書けた文字のみ色を着色したく思います

この場合はどのようにしたらよろしいでしょうか

【57607】Re:セル内文字着色
発言  マクロマン  - 08/9/4(木) 15:55 -

引用なし
パスワード
   まず、セルの文字列の一部に色を着ける作業を
マクロの自動記録してみてください。

そのコードがたたき台になると思います。
あと、
Split
もVBAヘルプで調べて見てください。

【57609】Re:セル内文字着色
発言  マクロマン  - 08/9/4(木) 20:25 -

引用なし
パスワード
   Len
も必要になってきますね。

↓はアクティブシートの使用セル範囲のセルの文字列のうち、
指定文字列のみ色を付けるサンプルです。

Sub test()
Dim c As Range
Dim r As Range
Dim mykey As String
Dim sp As Variant
Dim i As Integer
Dim mystr As String
Dim startnum As Integer
Dim lengthnum As Integer
 mykey = "鈴木三郎" '色を着ける文字列
 Set r = ActiveSheet.UsedRange
 For Each c In r
  If c.Value Like "*" & mykey & "*" Then
   sp = Split(c.Value, mykey)
   For i = 0 To UBound(sp)
    If i = 0 Then
     startnum = 1
    Else
     startnum = startnum + Len(sp(i - 1)) + Len(mykey)
    End If
    With c.Characters(Start:=startnum, Length:=Len(sp(i))).Font
    .ColorIndex = xlAutomatic
    End With
    With c.Characters(Start:=startnum + Len(sp(i)), Length:=Len(mykey)).Font
    .ColorIndex = 3
    End With
   Next i
  End If
 Next
End Sub

セルの内容が、名前を必ず"・"で区切って入力しているのなら、もっと簡単になるかもしれ
ません。

【57610】Re:セル内文字着色
発言  kanabun  - 08/9/4(木) 21:26 -

引用なし
パスワード
   ▼defic さん:
おじゃまします。

>このセル内で検索を書けた文字のみ色を着色したく思います

InStr関数で検索する方法です

Sub Try1()
 Dim ss As String, i As Long
 Dim c As Range
 Const strSearch = "佐藤二郎" '<--- 検索文字列
 
 Selection.Font.ColorIndex = xlAutomatic
 For Each c In Selection
   ss = c.Text
   i = InStr(ss, strSearch)
   If i Then c.Characters(i, Len(strSearch)).Font.ColorIndex = 3
 Next

End Sub

4266 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free