背景/テキストの色を他のセルの背景またはテキストの色に合わせる

背景/テキストの色を他のセルの背景またはテキストの色に合わせる

わかりました。私は大きなスプレッドシートを持っています (各セルの色を個別に、または手動で設定する必要はありません)。そして、他のセルをコピーするセルがたくさんあります。たとえば、セル N9、N 3、N80、N117 などがあり、=IF(N$931="","",N$931) なので、N931 に何かがあれば N9 などにコピーされ、なければ空白になります。N931 に設定した背景色を、自動的に N9 と同じ背景色にする機能が欲しいです。どうすればいいでしょうか?

乾杯!ジョン

答え1

条件付き書式やその他のフロントエンド技術を使用して、別のセルの色に基づいてセルの色を設定することはできないため、VBA を使用する必要があります。

色付きのデータが N 行にあり、行 500 から始まると仮定します。また、コピー先の最初のセルが N1 であり、のように N500 を参照して=if(N500="", "", N500)いると仮定します。さらに、その数式を N499 までコピーすると仮定すると、VBA は次のようになります。

Sub copyValuesAndFormats()
    Dim intRow As Integer
    Dim rngCopy As Range
    Dim rngPaste As Range


    'Loop from Rows 1 through 499
    For intRow = 1 To 499

        'Set the copy and paste range
        'CHANGE THE SHEET TO MATCH YOURS
        Set rngCopy = Sheet3.Range("N" & intRow + 499)
        Set rngPaste = Sheet3.Range("N" & intRow)

        'Test to see if rows 500+ have a value
        If rngCopy.Value <> "" Then

            'Since it has a value, copy the value and color
            rngPaste.Value = rngCopy.Value
            rngPaste.Interior.Color = rngCopy.Interior.Color

            'If you wish to copy the color of the font as well, uncomment the next line
            'rngPaste.Font.Color = rngCopy.Font.Color
        End If
    Next intRow
End sub

これを使用すると、N1:N499 に数式は必要ありません。いずれにしても、このコードによって数式が吹き飛ばされます。

関連情報