web-dev-qa-db-ja.com

セルの色を取得するExcelの数式

インライン式の助けを借りて(マクロを使用せずに)CELLの色を見つけることができるかどうかを知りたい

Home User Officeパッケージ2010を使用しています。

43
Praveen

いいえ、マクロを使用しないとセルの内部色に到達できません。怖いです。それは本当に簡単です(cell.interior.color)ので、VBAの使用を制限する要件がない限り、私はそれに行くと言います。

10
aevanko

コメントしたように、私がそこに投稿したリンクが壊れた場合に備えて、これを試してください:

リボンの[数式]タブの下にあるExcelの名前マネージャーで、名前(有効な名前)を追加します。
次に、GET.CELL関数を使用して数式を割り当てます。

=GET.CELL(63,INDIRECT("rc",FALSE))

63は背景色を表します。
名前をBackgroundとしましょう。色の種類があるセルでは:

=Background

結果:
enter image description here

セルA2、A3、およびA4は、それぞれ3、4、および5を返します。これは、セルの背景色のインデックスに相当します。 HTH。
ところで、ここにExcelのリンクがあります カラーインデックス

49
L42

色はデータではありません。

Get.cellテクニックには欠陥があります。

  1. セル(またはシート)が再計算された場合にのみ、セルの色が変更されてもすぐには更新されません。
  2. 最新のExcelで使用できる数百万色に対して十分な数がありません。スクリーンショットを見て、黄色または紫色のさまざまな強度がすべて同じ数であることに注意してください。

enter image description here

Get.cellは古いXMLコマンド、つまりVBAが導入される前に使用されていたマクロ言語Excelからのコマンドを使用するため、これは驚くことではありません。当時、Excelの色は60未満に制限されていました。

繰り返しますが、色はデータではありません。

セルを色分けする場合は、セルの値に基づいて、または論理式で表現できるルールに基づいて、条件付き書式を使用します。セルの色の値に関係なく、条件付き書式設定につながるロジックを他の場所で使用してデータをレポートすることもできます。

31
teylyn

セルの背景色を返すワークシート関数が組み込まれていないという答えがすでにあると予想して、間違っていた場合に備えて、この記事を確認することにしました。 Microsoft Excelの色に関する継続的な研究の過程で使用したものとまったく同じMVP記事への引用に気付いて面白かったです。

私は、最も純粋な意味で、色はデータではなく、メタデータであり、そのような用途があることに同意します。そのために、セルの色を返す関数の開発を試みます。成功した場合は、アドインに追加して、Microsoftが製品から除外したと考える他の多くの機能に加わるあらゆるブックで使用できるようにする予定です。

IMOに関係なく、ColorIndexプロパティは事実上役に立ちません。これは、カラーインデックスと、標準の前景および背景のカラーピッカーで選択できる色との間に本質的に関連がないためです。 色の組み合わせ:Microsoft Officeでの色の操作 および関連するバイナリブック Color_Combinations Workbook を参照してください。

1
David A. Gray