|    | 
     ▼kanabun さん: 
お世話になっております。 
先ほどすこしためしてみました。文字数に関しては問題なくクリアできました。 
しかし、別シートに存在するデータが複数ある場合、すべて大文字にはなるものの一番上にかかれているものだけが色が変わり、データが3個程度の場合はいろがかわるのですが10個程度になると色は変わらないといった事象がおきました。 
ですので、新しく作っていただいたマクロを利用して色付けの部分を省いて、別シートにある配列を大文字にしてから、前回作っていただいたものマクロを利用して色付けを行う(色付けに関しては文字数に関係ないようだったので)といった2段構えで行うと、私が行いたかったことを達成できることがわかりました。 
Sub 一塩基ゆらぎF() 
  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 
  Next 
End Sub 
Sub 完全一致F() 
  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 
  Next 
End Sub 
 
'c: 対象セル  What:検索文字列 
Sub LargeChar(c As Range, What As Variant) 
  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 
Sub 色づけtest() 
  Dim c As Range 
  For Each c In Selection 
    RepChar c, "AGGTCA", 3 
RepChar c, "AGTTCA", 7 
RepChar c, "ATTTCA", 22 
RepChar c, "TGACCT", 5 
RepChar c, "TGAACT", 8 
RepChar c, "TGAAAT", 17 
'c: 対象セル  What:検索文字列  ColorIndex:Font色Index 
Sub RepChar(ByVal c As Range, What As String, ColorIndex As Long) 
  Dim j As Long 
  Do 
    j = InStr(j + 1, c.Text, What) 
    If j = 0 Then Exit Do 
    With c.Characters(j, Len(What)) 
       .Font.ColorIndex = ColorIndex ' Font色 変更 
    End With 
  Loop 
  
End Sub 
このような形にして、完全一致や、一塩基ゆらぎのマクロを動かした後に大きくなった文字を検索して色づけtestのマクロを動かすといった具合にしました。 
1つのマクロですべてを対処するのは非常に難しいのだと実感いたしました。 
ありがとうございました。これで仕事が非常に効率的になりました。 
 
 | 
     
    
   |