|    | 
     ▼T.K さん: 
>しかも、複数のセルを選択してマクロを動かすとすべてのセルで一気に色が変わり、大文字になるという事がわかりました。ですので256文字の壁さえクリアできればほぼ目的は達成できるのではないかと思います。なぜ256文字以上はうまくいかないのか私の知識ではわかりません 
256文字以上のセル内文字列は一括置換できなくなる、というのはExcelの仕様のようですね 
256文字以上の文字列でも、文字列変数にコピーしてなら Replaceで置換できますので、 
ちょっと回りくどいけど、指定セル範囲内の各セルについて 
  LargeChar 対象セル、 検索文字列リスト、Font色 
を呼び出す、という風にしてみましょう。 
 
Sub Try2() 
  Dim c As Range 
  Dim What 
   
  ' '別シートの検索文字列リストを変数 What に取得 
  What = Application.Transpose( _ 
    Worksheets("完全一致F").UsedRange.Resize(, 1))  
  If Not IsArray(What) Then What = Split(What, "") 
  '対象範囲を順にLoopして セルごと処理  
  For Each c In Worksheets("クローンリスト").UsedRange.Resize(, 1) 
    LargeChar c, What, vbRed 
  Next 
End Sub 
 
'c: 対象セル  What:検索文字列  Color:Font色 
Sub LargeChar(c As Range, What As Variant, nColor As Long) 
  Dim j As Long 
  Dim sL As String 
  Dim ss As String 
  Dim wh 
   
  For Each wh In What 
    sL = UCase$(wh)  '例. wh:"aaa" sL:"AAA" 
    ss = Replace(c.Text, wh, sL) '文字列の置換 
    c.Value = ss  '変換後の文字列をセルにセット 
    Do 
      j = InStr(j + 1, ss, sL) 
      If j = 0 Then Exit Do 
      c.Characters(j, Len(sL)).Font.Color = nColor 
    Loop 
  Next 
End Sub 
 
'Fontの色は vbColor または RGBで指定してください 
  vbRed 
  vbBlue 
  vbGreen 
  vbYellow 
  vbCyan 
  vbMagenta 
などが利用できます(パレットの影響をうけません) 
 
 | 
     
    
   |