ここにいくつかの小さな関数があります。Altシートから-F11を押して VBA エディターにアクセスし、新しいモジュールを挿入し、以下のコードを貼り付け、ワークシートに戻って、次のように名前で使用します。=FillColor(A1)
最初の 2 つは、フォントと背景色に 10 進数値を与える約束された「3 ライナー」ですが、あまり役に立ちません。
2 番目のペアは、10 進数を RGB に変換し、N、N、N の形式の文字列を返します。
3 番目のペアは配列数式です。3 つのセルを連続して選択し、数式を入力してCtrl+ Shift+Enterを押すと、隣接する 3 つのセルの RGB 数値が取得されます。
Function FillColor(Target As Range) As Variant
FillColor = Target.Interior.Color
End Function
Function FontColor(Target As Range) As Variant
FontColor = Target.Font.Color
End Function
Function FillColorRGB(Target As Range) As Variant
Dim N As Double
N = Target.Interior.Color
FillColorRGB = Str(N Mod 256) & ", " & Str(Int(N / 256) Mod 256) & ", " & Str(Int(N / 256 / 256) Mod 256)
End Function
Function FontColorRGB(Target As Range) As Variant
Dim N As Double
N = Target.Font.Color
FontColorRGB = Str(N Mod 256) & ", " & Str(Int(N / 256) Mod 256) & ", " & Str(Int(N / 256 / 256) Mod 256)
End Function
Function FillColorRGBArray(Target As Range) As Variant
Dim N As Double, A(3) As Integer
N = Target.Interior.Color
A(0) = N Mod 256
A(1) = Int(N / 256) Mod 256
A(2) = Int(N / 256 / 256) Mod 256
FillColorRGBArray = A
End Function
Function FontColorRGBArray(Target As Range) As Variant
Dim N As Double, A(3) As Integer
N = Target.Font.Color
A(0) = N Mod 256
A(1) = Int(N / 256) Mod 256
A(2) = Int(N / 256 / 256) Mod 256
FontColorRGBArray = A
End Function
注意: セルの色を変更しても、上記の関数/数式による再計算は開始されません。一般に、セルの色を変更しても再計算は行われないためです。+ + +を使用して完全な再計算を手動で開始する必要があります。CtrlAltShiftF9