1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

シート色塗り用

Posted at

以下のVBAコードを使って、指定されたシートの特定の列を、別ブックの"rule"シートの1列目を参照して、文字列が一致するセルに"rule"シートと同じ色を塗ることができます。

vba
コードをコピーする
Sub ApplyColorsBasedOnRule()
Dim wbRule As Workbook
Dim wsRule As Worksheet
Dim ruleRange As Range
Dim cell As Range
Dim targetSheets As Variant
Dim targetColumns As Variant
Dim i As Integer
Dim j As Integer
Dim ws As Worksheet
Dim targetColumn As Range
Dim ruleCell As Range

' 参照するルールブックを開く
Set wbRule = Workbooks.Open("C:\Path\To\Your\RuleWorkbook.xlsx")
Set wsRule = wbRule.Sheets("rule")

' ルール範囲を設定 (1列目全体)
Set ruleRange = wsRule.Columns(1)

' 対象シートと列の配列を設定
targetSheets = Array("Story", "Likes", "Dislikes", "Impression")
targetColumns = Array("Story_base", "Likes_base", "Dislikes_base", "Imp_base")

' 各対象シートをループ
For i = LBound(targetSheets) To UBound(targetSheets)
    Set ws = ThisWorkbook.Sheets(targetSheets(i))
    Set targetColumn = ws.Range(targetColumns(i) & ":" & targetColumns(i))
    
    ' 対象列の各セルをループ
    For Each cell In targetColumn
        ' ルール範囲をループして一致する文字列を探す
        For Each ruleCell In ruleRange
            If cell.Value = ruleCell.Value Then
                ' 一致する文字列があれば、セルの色をルールのセルの色に設定
                cell.Interior.Color = ruleCell.Interior.Color
                Exit For
            End If
        Next ruleCell
    Next cell
Next i

' ルールブックを閉じる
wbRule.Close False

End Sub
手順:
上記のコードをコピーして、VBAエディターに貼り付けます。
Workbooks.Open行のパスを、実際のルールブックのパスに置き換えます。
マクロを実行します。
このコードは、"rule"シートの1列目の各セルの値を、指定されたシートの指定された列と比較し、一致する場合にそのセルの色を"rule"シートのセルの色に設定します。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?