

エクセルに関してご存知の方、よろしくお願いいたします。
セルの色を判断し、別のセルに文字を表示させることは可能でしょうか?
例えば、
(1)A1~A10のセルに他のシートのリンクが張ってあり、数値が表示されている。
(2)その数値がそれぞれの閾値外だった場合、セルの色を赤くする。
(3)A1~A10のセルのうち一つでも赤いセルがあった場合、A11に「異常」と表示させる。無かった場合は「正常」と表示させる。
今回教えていただきたいのは、(3)です。
意味がよく分からない場合は補足させていただきます。
アドイン等はせずに、上記方法をご存知の方がいらっしゃいましたら、
お知恵を貸していただけないでしょうか?
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
まずワークシート関数やアドインの関数ではセルの色を取得することはできません。
背景色の色番号を取得するには、どうしてもマクロが必要になりますでも
>(2)その数値がそれぞれの閾値外だった場合、セルの色を赤くする。
は、もしかしたら条件付き書式を使って実現していませんか?
その場合はVBAのColorIndexプロパティでも背景色の色番号を取得できません。条件付き書式で背景色が変わっていても「セルの元の色番号」しか取得できないからです。
条件付き書式で色を変えているなら、「閾値からはみ出した」セルは、IF関数を用いて空き列に「任意の文字列」を表示させ、その列の全行が空白かどうかで「異常のあるなし」を判断させるのが良いと思います。
条件付き書式は使ってないなら、以下のようなユーザ定義関数でセルの背景色を取得できます。以下のマクロはALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。
ワークシート画面に戻って「=Cidx(A1)」と入力するとA1セルの背景色を取得できます。
Function Cidx(ByVal trg As Range) As Integer
If trg.Cells(1, 1).Interior.ColorIndex = xlNone Then
Cidx = 0
Else
Cidx = trg.Cells(1, 1).Interior.ColorIndex
End If
End Function
その他にも古いバージョンのGET.CELLマクロを使って背景色を取得する方法はあるのですが、かえって面倒になるので、それは割愛!
No.2
- 回答日時:
セルの色が赤(下記の例では、赤と思われる色の番号を 3 としましたが、実際の色を確認した上で、実施してください。
)次のマクロを実行させれると、A1 ~ A10 の中に色が 3(赤色)のセルが1つでもあれば、A11 に "異常" と設定されます。
Sub macro_x()
Range("A11") = ""
If ((Range("A1").Interior.ColorIndex = 3) Or _
(Range("A2").Interior.ColorIndex = 3) Or _
(Range("A3").Interior.ColorIndex = 3) Or _
(Range("A4").Interior.ColorIndex = 3) Or _
(Range("A5").Interior.ColorIndex = 3) Or _
(Range("A6").Interior.ColorIndex = 3) Or _
(Range("A7").Interior.ColorIndex = 3) Or _
(Range("A8").Interior.ColorIndex = 3) Or _
(Range("A9").Interior.ColorIndex = 3) Or _
(Range("A10").Interior.ColorIndex = 3)) Then
Range("A11") = "異常"
Else
Range("A11") = "正常"
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで年月日データから下二桁...
-
Excelで来月以降の日付のセルを...
-
エクセル 関数 セルの値が0...
-
エクセルでセルに何も入力して...
-
Excelで、セル内改行もそっくり...
-
エクセルのセルが縦方向にのびる
-
【Excel】セルの中の文字の下の...
-
Excel 「選択範囲で中央」に設...
-
Excelの条件付き書式で、計算式...
-
横書きで縦の波線の書き方
-
エクセルで文字の上に重ねがき...
-
Excelで前ゼロを取る方法
-
エクセルのセルに「=A13」...
-
おねがいします>< エクセルで...
-
エクセルで特定のセルを表示の...
-
Excelで、あるセルだけ入力させ...
-
EXCEL:フォントがなぜか透明
-
セルに入力した数字が日付に変...
-
Excelの空のセル
-
エクセル「折り返して全体を表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで年月日データから下二桁...
-
エクセルで特定のセルを表示の...
-
Excelで来月以降の日付のセルを...
-
エクセルのセルが縦方向にのびる
-
Excelで、セル内改行もそっくり...
-
Excelの条件付き書式で、計算式...
-
エクセルでセルに何も入力して...
-
エクセル 関数 セルの値が0...
-
エクセルのセルに「=A13」...
-
エクセルで文字の上に重ねがき...
-
エクセルで勝手に表示された打...
-
EXCEL:フォントがなぜか透明
-
ワードの表の中に文字を入れる...
-
セルA1とB1の数値が一致しな...
-
concatenate関数で片方のセルの...
-
横書きで縦の波線の書き方
-
【Excel】セルの中の文字の下の...
-
エクセル「折り返して全体を表...
-
おねがいします>< エクセルで...
-
条件付き書式 特定の年だけに適...
おすすめ情報