[[20090706153910]] 『指定行の"0"を赤太字にしたい』(Pi) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『指定行の"0"を赤太字にしたい』(Pi)

 こんにちわ。早速ですが質問させてください。
 現在下記の様な一覧がExcelにてあり、在庫行の"0"を赤字で表示するようにマクロ実行をしています。

 商品名  カテゴリ  4月  5月  6月 ・・・・
 A商品  補充    8    4   15
       売上      5      7      3
         在庫      3      0     12
 B商品  補充    0    0   10
         売上      5      1      3
         在庫      3      2      9

 ただ、現在使用しているマクロですと赤字には表示されても太字になってくれません。

 Sub 帳票マクロ()
   Dim Endr As Integer
   Dim Endc As Integer

   Endr = Cells(1000, 3).End(xlUp).Row
   Selectc = Selection.Column

    Rows("1:1").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=2, Criteria1:="在庫"     
  Range(Cells(2, Selectc), Cells(Endr, Selectc + 10)).Select
    Selection.NumberFormatLocal = "#;-#;[赤]0"
    Selection.AutoFilter Field:=2
 End Sub

 条件付書式など試したのですが在庫行だけでなく補充行の"0"まで赤太字になってしまいます。
 上記のマクロを変更すれば .FontStyle = "太字" を使用できそうな気がするのですが
 ど素人な為マクロの組み方(仕組み?)がわかりません。
 お答えいただける方、いらっしゃいましたらよろしくお願いいたします。


 マクロでも出来ますが普通に条件付書式でどうでしょう?

 =AND($B2="在庫",C2=0)
 のようにして範囲全体に設定して赤+太字の設定にすれば出来ると思いますが
 (momo)

momoさん、出来ました!!
ありがとうございます。
昨日までの自分の条件付書式の何がいけなかったのか
勉強させていただきますっっ

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


もう一つ質問させてください。

同じ表で、
在庫が0の時に赤太字にする  =AND($B2="在庫",C2=0)

さらに
0を赤太字にしたカテゴリ列のセル(在庫)をピンクに塗りたいのですが・・・。

条件付書式の【追加】で数式を入力?と思うのですが
数式がわかりません。


 ちょっと良く分からないのですが、最初に御提示のサンプルだと
  A商品のB列の「在庫」のセルをピンクに
  B商品のB列の「在庫」のセルは色を付けない
 と言う事ですか?

 すると、過去に一回でも在庫が「0」に成った物は
 ず〜っとピンク って事になるんじゃないかと思いますが。。。

 B列の条件付き書式の数式に
=AND(B2="在庫",COUNTIF(C2:F2,0))
 とかですか?

 (HANA)

(HANA)様

 ありがとうございます。

 (HANA)様のご指摘、ごもっともです。私の説明不足で申し訳ありません。
 過去に(と言っても今年度分だけの帳票です)在庫「0」になった物はずっとピンクにしたいのです。
 面倒なことにこの帳票は毎月新しく作成されたExcelを使用しているため、
 せっかくピンクにしても、翌月にはまたピンクに塗らなくてはいけないのです。
 (在庫数「0」に関しても同様、確定されていない月は在庫数の変動もあり)
 更に、商品数が増えたり減ったりする為 毎月【最初からやり直し】の気分です。

 出来ればマクロで 在庫数「0」を赤太字に、赤太字にした商品名+カテゴリ分(上の表だと(A2:B4))をピンクにする。
 というのが理想なのですが、私のスキルではとても追いつけそうにありません。

 
 
 


 マクロでやりたいのでしたら、こんな感じでしょうか?
 エラー処理や質問内容意外のセル範囲の条件は無視したサンプルです。

  Private Sub Worksheet_Change(ByVal Target As Range)
  Dim col As Long
  With Target
    If .Count > 1 Then Exit Sub
    If Me.Range("B" & .Row).Value = "在庫" Then
      If .Value = 0 Then
        .Font.ColorIndex = 3
        .Font.Bold = True
      Else
        .Font.ColorIndex = xlAutomatic
        .Font.Bold = False
      End If
      If Application.WorksheetFunction.CountIf(.EntireRow, "0") > 0 Then
        col = 38
      Else
        col = xlNone
      End If
      Me.Range(Me.Range("A" & .Row - 2), Me.Range("B" & .Row)).Interior.ColorIndex = col
    End If
  End With
  End Sub

 (momo)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.