すべてのカテゴリ » インターネット・パソコン » ソフトウェア » 使い方・不具合

質問

終了

エクセルで条件付き書式を以下の3つ設定しているのですが、
もう1つ下記のように設定したい場合どうしたらいいのでしょうか?

B1のセルで

①A1=1の時、セルをグレー
②IF(A1<>1,C1="1")の時、セルを赤
③IF(A1<>1,OR(C1="2",C1="3"))の時、セルを青

D1が1の時、B1を赤文字 というのを追加したいのですが・・・

VBAはまったく分かりません。
分かる方、教えていただけませんか?
よろしくお願いします。

  • 質問者:ピノ
  • 質問日時:2008-08-28 21:00:24
  • 0

B1のセルに、
"セルの書式設定”-"表示形式"-"数値"で、負の表示形式で赤字になっているものを選択します。
D1のセルが1だったら、B1の内容が負になるようにIF文で式を作成すれば、
=IF(D1=1,-1,1)
VBAを利用しなくても、ご希望の設定ができると思います。

この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

この方法を使用させていただきました。
たいへんありがとうございました。

並び替え:

マクロを使用するとして、説明します。
先ず、Excelのヘルプで、「マクロを作成する」を確認して、マクロを使用できるように設定して下さい。
設定できたら、参考URL
条件付き書式で4つ以上の条件を指定-Worksheet_Changeイベントプロシージャ
 http://www.relief.jp/itnote/archives/002293.php
ColorIndexプロパティ値一覧 http://www.relief.jp/itnote/archives/000482.php
上記を参考に下記を作成しました。
直接入力する列を、A列、C列、D列と仮定して、補助列としてG列を使用して、
G列に条件分けの数値を関数で、表示させます。
G1へ =IF(A1="","",IF(A1=1,1,IF(C1=1,2,IF(OR(C1=2,C1=3),3,IF(D1=1,4,5))))) を、オートフィルで必要分下へ
シートタブを右クリック→コードの表示→表示されたところへ下記を貼り付け

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim intColor As Integer, 条件 As Integer
 If Target.Count > 1 Then Exit Sub
 If Intersect(Target, Range("A1:A10,C1:D10")) Is Nothing Then Exit Sub
 '↑範囲をA1:A10とC1:D10にしています。
 条件 = Range("G" & Target.Row).Value 'Gを実際に使用する列へ変更例えばX等 Range("X" & Target.Row).Value
 Select Case 条件 'G列の値(条件)から色を選択
  Case 1
   intColor = 15
  Case 2
   intColor = 3
  Case 3
   intColor = 5
  Case 4
   intColor = 3
  Case 5
   intColor = 0
 End Select
 Range("B" & Target.Row).Interior.ColorIndex = IIf(条件 <> 4, intColor, xlNone)
 '↑ここで塗りつぶし
 Range("B" & Target.Row).Font.ColorIndex = IIf(条件 <> 4, 0, intColor)
 '↑ここでフォントの色を変更
End Sub

使用例A列、C列、D列で入力されたり、F2キーを押下してEnter等で、条件付書式の動作の様になります。
条件の優先順位は、G列の数式を変更して調整してください。

  • 回答者:turuzou (質問から13時間後)
  • 0
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

マクロが全く分からなかったので、
たいへん勉強になりました。
ありがとうございました。

見当違いの回答なら、申し訳ございません。お許しください。


色付のセルで文字を挟み込むというのはどうでしょう?

B列の左に1列、右に1列、追加する。
左の列と右の列は空欄で、条件①、②、③を入れる。
真ん中の列に文字を入れて、4番目の条件を入れる。

  • 回答者:きりん (質問から9時間後)
  • 0
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

ありがとうございました。

EXCEL2003までは3つの条件書式と条件外の書式までが限度です。
EXCEL2007でなら最大64まで設定できます。

http://office.microsoft.com/ja-jp/excel/HA100778231041.aspx?pid=CH100648071041
http://office.microsoft.com/ja-jp/excel/HA101655491041.aspx?pid=CH100740791041

などに情報があります。EXCEL2003まででどうしても実現したいのであればVBAしかないと思います。

  • 回答者:dai (質問から3時間後)
  • 0
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

ありがとうございました。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る