- ベストアンサー
Excel セルに自動で文字を表示さす
office365利用 Excelで、特定の文字が入っていたらセルに自動で色付け、は出来るのですが、その逆 セルに色(特定の色)が入っていたら、セルに自動で「-」スラッシュを入れる、という設定が出来ますでしょうか。 お詳しい方、よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
A1:A10に塗りつぶしのセルがあるとして 塗りつぶしのRGB を、B1:B10に表示させる Sub GetColorRGBInRange() Dim targetRange As Range Dim cell As Range Dim colorRGB As String ' 対象となる範囲を指定します(A1:A10を例としています) Set targetRange = Range("A1:A10") ' 対象範囲内の各セルに対して処理を行います For Each cell In targetRange ' セルの背景色のRGB値を取得します colorRGB = "RGB(" & cell.Interior.Color Mod 256 & "," & (cell.Interior.Color \ 256) Mod 256 & "," & (cell.Interior.Color \ 65536) Mod 256 & ")" ' 結果を隣接するセルのB列に表示します cell.Offset(0, 1).Value = colorRGB Next cell End Sub そのRGBを利用して 文字列B1:B10に書き込む Sub CheckColorAndDisplayTextInRange() Dim targetRange As Range Dim cell As Range Dim resultText As String ' 対象となる範囲を指定します(A1:A10、B1:B10を例としています) Set targetRange = Range("A1:A10") ' 対象範囲内の各セルに対して処理を行います For Each cell In targetRange ' セルの背景色が19(ランダムに選択した色の場合)であるかをチェックします If cell.Interior.Color = RGB(255, 230, 153) Then resultText = "True" Else resultText = "False" End If ' 結果を隣接するセルのB列に表示します cell.Offset(0, 1).Value = resultText Next cell End Sub
その他の回答 (5)
- yumi-access
- ベストアンサー率21% (36/170)
- SI299792
- ベストアンサー率47% (774/1618)
Macro2、ミス・差し替え ' Sub Macro2() ' Application.FindFormat.Interior.Color = vbRed ' If [A1].Interior.Pattern = xlNone Then MsgBox "A1に色がありません", vbCritical Else Application.FindFormat.Interior.Color = [A1].Interior.Color Cells.Replace "", "-", SearchFormat:=True End If End Sub
- SI299792
- ベストアンサー率47% (774/1618)
VBA でやるしかないですが、 ・色をどうやって指定するか Macro1:赤にします Macro2:A1につけた色と同じ色なら- にします。 ・空白だけ「-」にするのか、データが入っていても「-」にするのか(後者にします) ' Sub Macro1() ' Application.FindFormat.Interior.Color = vbRed Cells.Replace "", "-", SearchFormat:=True End Sub ' Sub Macro2() ' If [A1].Interior.Pattern = xlNone Then MsgBox "A1に色がありません", vbCritical Else Application.FindFormat.Interior.Color = [A1].Interior.Color Cells.Replace "", "-", SearchFormat:=True End If End Sub
- asciiz
- ベストアンサー率70% (6803/9674)
Excelの標準関数に、セルの色を取得するものはありません。 そこで、マクロで調べたり、それをユーザー定義関数として使えるようにしてから、セルの式で使用する方法が考えられます。 (参考) >セルの色を取得するユーザー関数 ~3行マクロ >https://kokodane.com/mini_macro-55.htm >Microsoft Excelで色付きセルをカウントする6つの方法 | Indeed (インディード) >https://jp.indeed.com/career-advice/career-development/how-to-count-colored-cells-in-excel しかし、マクロを含んだExcelブックは開くたびに警告されたりして扱いが面倒ですから、条件付き書式設定に入れた判定式をコピーして、普通の式(if関数・and関数・or関数の組み合わせ)で "" または"-"を表示するように組んだ方が良いと思います。
- p-p
- ベストアンサー率35% (1977/5635)
条件付き書式の機能で可能ですよ https://litera.app/blog/excel-color-text-cell-automatically/
補足
ありがとうございます。セルに文字や色を付けたりは出来るのですが、自動で文字を入れる事も出来るのでしょうか。