ニールはワークシートで色をよく使用しています。彼は、RGBの数値に基づいて(そして他の_ExcelTips_の問題で説明されているように)色を生成できることを知っています。ニールは反対のことをしたいと思っています—RGB値を決定します。彼は(関数またはマクロを介して)戻る方法があるかどうか疑問に思います

セルの塗りつぶしに使用される色のRGB値。

Excelにはこれを行う関数は含まれていませんが、独自のユーザー定義関数を作成できます。使用する関数は、実際にワークシートに何を返したいかによって異なります。たとえば、RGBカラーの従来の6文字の16進コードを返したい場合は、次の非常に単純なマクロを使用します。

Function getRGB1(rcell) As String     Dim sColor As String

sColor = Right("000000" & Hex(rcell.Interior.Color), 6)

getRGB1 = Right(sColor, 2) & Mid(sColor, 3, 2) & Left(sColor, 2)

End Function

このマクロは、参照するセルの内部の色を調べ、色の16進値を正しい順序で配置し、文字列をExcelに返します。関数を使用するには、ワークシートで、次のように参照されるセルを使用して関数を呼び出すだけです。

=getRGB1(B4)

ただし、RGBカラーの従来の16進コードは必要ない場合があります。

各色の10進値を取得する場合は、次のマクロが次の値を返します。

Function getRGB2(rcell) As String     Dim C As Long     Dim R As Long     Dim G As Long     Dim B As Long

C = rcell.Interior.Color     R = C Mod 256     G = C \ 256 Mod 256     B = C \ 65536 Mod 256     getRGB2 = "R=" & R & ", G=" & G & ", B=" & B End Function

getRGB1マクロと同じ方法で呼び出されたこのバージョンは、「R = 255、G = 204、B = 0」などの文字列を返します。設定したパラメーターに基づいて単一の値を返すように、マクロをさらに変更することもできます。

Function getRGB3(rcell As Range, Optional opt As Integer) As Long     Dim C As Long     Dim R As Long     Dim G As Long     Dim B As Long

C = rcell.Interior.Color     R = C Mod 256     G = C \ 256 Mod 256     B = C \ 65536 Mod 256

If opt = 1 Then         getRGB3 = R     ElseIf opt = 2 Then         getRGB3 = G     ElseIf opt = 3 Then         getRGB3 = B     Else         getRGB3 = C     End If End Function

マクロを使用するには、ワークシートで使用する関数に2番目のパラメーターを追加して、必要なものを指定します。

=getRGB3(B4,1)

2番目のパラメーターが1の場合、関数は赤の値のみを返します。 2番目のパラメーター2を指定すると、緑の値が返され、3は青の値を返します。 2番目のパラメーターの他の値(または完全に省略した場合)は、内部色の完全な10進値を返します。

マクロを作成するルートに行きたくない場合、またはExcelワークシート以外の色を決定したい場合は、サードパーティのユーティリティを検討することをお勧めします。面白そうなのは無料のインスタントスポイトです。あなたはそれについてのより多くの情報をここで見つけることができます:

http://instant-eyedropper.com

注:

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

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

このヒント(10179)は、Microsoft Excel 97、2000、2002、および2003に適用されます。

Excel(Excel 2007以降)のリボンインターフェイスに関するこのヒントのバージョンは、次の場所にあります: