• ベストアンサー

VBAで背景色にあった文字色を自動で判別したい

kkkkkmの回答

  • kkkkkm
  • ベストアンサー率65% (1636/2483)
回答No.3

アートほどこだわらないのでしたら、RGBの値を足して127*3より小さければ濃い色だから白文字、大きければ薄い色だから黒文字、くらいの判定でいいんじゃないでしょうか。

noname#250245
質問者

お礼

ああ、試してみたら確かにそれでも充分そうですね(^_^; 大してこだわらない物については、この方法を使いたいと思います。 ご回答ありがとうございました。

関連するQ&A

  • 【Excel】セルの背景色、文字色のRGB値を求める方法

    Excel(関数orマクロ)でセルを参照して、 そのセルの背景色、文字色それぞれのRGB値(255,255,255 等)を自動取得することは可能でしょうか? 例えば、 A1セルの背景色RGB値をB1セルに。 A1セルの文字色RGB値をC1セルに、というイメージです。 ※バージョンはExcel2007です 宜しくお願い致します。 背景色、文字色のRGB値を求める方法

  • VBA セルの色を変更する

    VBA(エクセル2007使用)で、セルの背景色を変更する場合についての質問です。 マクロを実行する度に、セルの背景色を変更するマクロを作成しました。 オレンジ→水色→緑→灰色→無色  という風に変わっていくところまでは できたのですが、これだとマクロを実行するのにセルの状態が無色か、指定した カラーコードで塗りつぶされていないと実行できません。 下記、コードの一番最初の Case で ”背景色がどんな色の場合でも”という条件に したいのですが、どのように記載したらわからずにいます。。。 ---------------------------- Sub 色チェンジ() n0 = ActiveCell.Interior.ColorIndex Select Case n0 Case xlNone   ’ここを”どんな色の場合でも、、、という条件にしたいです。。” Selection.Interior.ColorIndex = 40 Case 40 Selection.Interior.ColorIndex = 34 Case 34 Selection.Interior.ColorIndex = 35 Case 35 Selection.Interior.ColorIndex = 15 Case 15 Selection.Interior.ColorIndex = xlNone End Select End Sub -----------------------------------

  • エクセル2003 VBAマクロにて 背景色 白色の抽出

    エクセル2003のマクロでセル背景色にて抽出したいのですが 背景色が白色(空白)の抽出ができません。 背景色別に 他セルに文字を自動記入したいのですが、 背景色が白(collorindex=0)の認識をしてくれません。 カラーインデックスでは、白は「0」か「2」になっているので その値でマクロを組んでも認識してくれないようです。 どのようにすればよいのでしょうか? 以下に私(素人)のマクロ文(一部)です。ご指摘お願い致します。 Dim 行番号 As Integer 行番号 = 7 Do Until Cells(行番号, 1).Value = "" If Cells(行番号, 9).Interior.ColorIndex = 5 Then Cells(行番号, 14).Value = "3号機"   ElseIf Cells(行番号, 9).Interior.ColorIndex = 7 Then Cells(行番号, 14).Value = "4号機" ElseIf Cells(行番号, 9).Interior.ColorIndex = 0 Then Cells(行番号, 14).Value = "未加工" End If 行番号 = 行番号 + 1 Loop

  • セルの背景色を数えたいのですが

    Excel2000で、数値や文字が入っているセルの一部に 「背景色」(塗りつぶし色)をつけております。 この中で、範囲指定をして「特定の背景色セル」だけをCountできるような関数はありますでしょうか? また、マクロでしたらどのようにすれば良いのでしょうか? マクロの知識はほとんどありません。 (↓)のカラーパレットの最下段の2色と同じ色を 個別に指定したいと思っております。 □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ □ ■ □ □ □ ■ □

  • エクセルの背景色は何色?

    エクセルで色をつけていないセルをカウントしたいのですが背景色を変形していないデフォルトの色は「白」かと思っていましたがどうも違うようです。 何色なのでしょうか? interior.colorindex = 2 か、vbwhiteではうまくカウントされないようです。

  • エクセルのマクロ、一定時間ごとに背景色を変える方法

    Excel 2000 を使ってます。 15分刻みで一日の日程表を作ってます。 過ぎた時間のセルの背景を自動的に灰色にしたいんですが、 そういうことをマクロでするのは可能でしょうか? Selection.Interior.ColorIndex = 15 JavaScript なら Date クラスと setInterval で出来るんですが、 こちらは初心者でして。。。

  • VBA 条件付き書式の書式(背景色)のみコピー

    エクセル2016のマクロで、別シートの条件付き書式の書式(背景色)のみコピーしてきたいです。 以下ではうまく動かすことができませんでした。 ws2.Range("A1:D10").DisplayFormat.Interior.ColorIndex = ws1.Range("A1:D10").DisplayFormat.Interior.ColorIndex 範囲の背景色のみコピー&ペーストという動作自体できないのでしょうか? また、for...nextで一セルずつ等他に方法があればお教えいただきたいです。 分かりづらい質問で申し訳ありません。。 質問の趣旨をおわかりいただけるでしょうか? 方法等調べましたがほしい情報が見当たらず、お知恵をお貸しください。 よろしくお願いいたします。

  • エクセルVBAについて

    エクセルVBAについて 下記のようなマクロで、選択したセルの、列の背景色の切り替えを行いたいと思っています。 が、写真のように、塗りつぶしを行いたいセルが結合しているところと、 そうでないところがあり、列全体に、うまく塗りつぶしができません。 '列の背景色を変更 Cells.Interior.ColorIndex = xlNone Dim i As Long i = Target.Column Columns(i).Interior.ColorIndex = 6   Columns(i + 1).Interior.ColorIndex = 6 また、選択するセルは、2行目で、2列が結合しています。 うまく、2列が結合しているセルにも、塗りつぶしを適用することは可能でしょうか? また、できれば列全体の塗りつぶしでなく、行の範囲も指定できればと思っています。 写真では、2列が結合していない部分のみ、塗りつぶしが適用されています。 表の構成上、結合しているセルとそうでないセルの変更ができないため、困っています。 どうぞ、よろしくお願いいたします。

  • 指定した背景色のセルの値を削除するVBAを作りたい

    ご覧いただきありがとうございます。 VBA初心者です。 VBAを用いて指定し背景色のセルの値を全て削除したいと考えています。 シートには別の背景色のセルもあるため色のあるセルの値をすべて削除などは使えません。 For Eachを用いて以下のような数式を用いようと思ったのですが、Ineriorはセルを対象としていないといけないようで、シート全体を対象としたい場合どうしたらよいか分かりません。 また終わりのところもよくわかっていません。 ご教授よろしくお願い致します。 Dim ws As warksheet For Each ws In ActiveSheet If ws.Interior.ColorIndex = RGB(252, 228, 214) Then ws.ClearContents Next End Sub

  • Win8.1 背景が突然黒・白抜き文字に

    画面の明るさを調整しようと思い、ファンクションキーを操作していたら(これが原因かどうかハッキリとは覚えていないのですが、結果としては)突然デスクトップの背景が黒になってしまいました。 機能的には問題ないのですが、IE,オフィスとも全て背景黒の白抜き文字の状態でひどく見ずらくなってしまいました。「復元」しても元にもどりません。デスクトップは背景色を変えることができました。IEに関しては背景は替えられましたが、ツールバーとお気に入り欄は黒に白抜きのままです。現在記入しているこの画面も黒に白抜きとなっています。 一番困るのが良く使用するエクセルで、シート全体が真っ黒、罫線・文字が白の状態です。 フォントの色も塗りつぶしも効きません。「書式」>「シート見出しの色」など操作しても変化なしです。ちなみにオフィスのバージョンは「office personal 2013」です。初期状態に戻したいのですが、どなたか解決法ご存じの方いらっしゃればご教授ください。(画像添付できませんでした。) よろしくお願いします。