エクセルについて質問です。


在庫管理のエクセルを作成しているのですが

在庫数のセルが0になったら

状況判断の文字表記をA~Bへ変えて 

その行を黒色で全部塗りつぶす (状況としましては列Jに在庫の数情報が 列Cに状況判断の文字が書いてあります。)

というプログラムをエクセル全体にかけたいのですがやり方がわかりません。
そのようなプログラムを分かる人おりましたら教えていただいてよろしいでしょうか。
お手数をおかけしますがよろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/03/03 16:25:57
  • 終了:2008/03/10 16:30:03

回答(2件)

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912008/03/03 16:43:51

ポイント35pt

対象となるワークシートのタブを右クリックし、「コードの表示」を選択。


下記のコードを貼り付けて、J列を0やそれ以外の数字に変更してみてください。

Const NUM_COL = "J"
Const STATAS_COL = "C"
Const NEW_STATUS = "A~B"
Const COLOR_BLACK = 1
Const COLOR_GRAY = 15

Private Sub Worksheet_Change(ByVal Target As Range)
'--- 変更したセルが J 列以外なら列以外なら処理をしない
    If Intersect(Target, Columns(NUM_COL)) Is Nothing Then
        Exit Sub
    End If

'--- 変更したセルを順番に処理
    Dim rg As Range
    For Each rg In Intersect(Target, Columns(NUM_COL))
        If rg.Value = 0 Then
'--- 0 のときは背景色を灰色に設定
  '---(黒田と文字が見えないので。黒にしたい場合はCOLOR_BLACKに変更)
            Rows(rg.Row).Interior.ColorIndex = COLOR_GRAY
  '--- C 列にステータスを記載
            Cells(rg.Row, STATAS_COL).Value = NEW_STATUS
        Else
'--- 0 以外のときは背景色なしに設定
            Rows(rg.Row).Interior.ColorIndex = xlNone
        End If
    Next
End Sub

http://www.asahi-net.or.jp/~ef2o-inue/_k/sub04_200_040.html

不明な点はコメントにて対応しますので、有効にお願いします。

id:aiomock

実行できました。ありがとうございます。

2008/03/03 17:53:30
id:rikuzai No.2

りくっち回答回数1366ベストアンサー獲得回数1412008/03/03 16:49:42

ポイント35pt
  • J列の値が「0」になったら
    1. C列の文字表記を○○に変更
    2. 該当行を黒で塗りつぶす

以上のことがされたいということなら、プログラムを使用しなくても一般機能で十分可能です。


1.IF関数を使用する

2行目から値が入っているとして

C2=IF(J2=0,"在庫0の時の文字列","0でない時の文字列")

を入力して必要行までコピーします。


2.条件付書式を使用します。

塗りつぶしたい範囲の一番左上のセルを選択し、

「書式」→「条件付き書式」をクリック

「数式が」を選択して「=$J1=0」を入力。

書式ボタンを押し、パターンから背景黒を設定してOK

塗りつぶしたい範囲に書式のみを貼り付ける。


条件付き書式--Excel・エクセル



以上ご参考まで。

id:aiomock

ありがとうございます。確認できました。

2008/03/03 17:54:07

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません