デニスは、3つのセル(A1:A3)にRGB値を入力し、別のセル(C1)にそれらの値に基づいて色を表示させたいと考えています。彼はこれを行う簡単な方法があるかどうか疑問に思います。

これを行う最も簡単な方法は、A1:A3の値を取得し、それらの値に基づいてセルC1の色を変更するマクロを使用することです。

理想的には、マクロはソースセルの値が0から255の範囲にあることを確認する必要があります。次のマクロはこの目的に最適です。

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1:A3")) Is Nothing Then         lRed = Abs(Range("A1").Value) Mod 256         lGreen = Abs(Range("A2").Value) Mod 256         lBlue = Abs(Range("A3").Value) Mod 256

Range("C1").Interior.Color = RGB(lRed, lGreen, lBlue)

End If End Sub

このマクロは、セルが存在するワークシートのコードに追加する必要があることに注意してください。 (シートタブを右クリックして[コードの表示]を選択し、そこにマクロを追加するだけです。)これは、セルA1、A2、またはA3に変更があるたびに自動的に実行されるイベントハンドラーです。

これらのセルの値は、セルの内容の絶対値を取得し、余り(モジュロ)を使用することにより、0〜255の間であることが保証されます

256で割る。

このマクロは、A1:A3(RGB値)の範囲の値を手動で変更した場合にのみ機能します。その範囲の値が数式の結果である場合、セルを手動で変更していないため、正しく機能しません。その場合は、マクロの次の単純な変更を使用する必要があります。

Private Sub Worksheet_Change(ByVal Target As Range)

lRed = Abs(Range("A1").Value) Mod 256     lGreen = Abs(Range("A2").Value) Mod 256     lBlue = Abs(Range("A3").Value) Mod 256

Range("C1").Interior.Color = RGB(lRed, lGreen, lBlue)

End Sub

このバージョンでは、変更が発生した場所に関係なく、ワークシートで何かが変更されるたびに色が更新されます。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(9092)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。