Excel VBA質問箱 IV

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

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


10392 / 76734 ←次へ | 前へ→

【71889】Re:特定の文字列を検索し、色をつける、大文字にするVBAを教えてください。
お礼  T.K  - 12/4/22(日) 17:12 -

引用なし
パスワード
   ▼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つのマクロですべてを対処するのは非常に難しいのだと実感いたしました。
ありがとうございました。これで仕事が非常に効率的になりました。

15 hits

【71882】特定の文字列を検索し、色をつける、大文字にするVBAを教えてください。 T.K 12/4/21(土) 19:49 質問
【71883】Re:特定の文字列を検索し、色をつける、大... kanabun 12/4/21(土) 20:34 発言
【71884】Re:特定の文字列を検索し、色をつける、大... T.K 12/4/21(土) 23:13 発言
【71885】Re:特定の文字列を検索し、色をつける、大... kanabun 12/4/22(日) 1:14 発言
【71886】Re:特定の文字列を検索し、色をつける、大... T.K 12/4/22(日) 9:41 発言
【71887】Re:特定の文字列を検索し、色をつける、大... T.K 12/4/22(日) 13:00 発言
【71888】Re:特定の文字列を検索し、色をつける、大... kanabun 12/4/22(日) 13:40 発言
【71889】Re:特定の文字列を検索し、色をつける、大... T.K 12/4/22(日) 17:12 お礼
【71890】Re:特定の文字列を検索し、色をつける、大... kanabun 12/4/22(日) 18:35 発言
【71891】Re:特定の文字列を検索し、色をつける、大... kanabun 12/4/22(日) 19:05 発言
【71892】Re:特定の文字列を検索し、色をつける、大... T.K 12/4/22(日) 19:13 回答
【71893】Re:特定の文字列を検索し、色をつける、大... kanabun 12/4/22(日) 19:18 発言
【71894】Re:特定の文字列を検索し、色をつける、大... T.K 12/4/22(日) 19:33 発言
【71895】Re:特定の文字列を検索し、色をつける、大... kanabun 12/4/22(日) 20:17 発言
【71896】Re:特定の文字列を検索し、色をつける、大... T.K 12/4/22(日) 21:21 お礼

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