人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

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

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

●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:エクセル セル プログラム 作成 在庫
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Mook
●35ポイント

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


下記のコードを貼り付けて、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

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

◎質問者からの返答

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


2 ● りくっち
●35ポイント

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


1.IF関数を使用する

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

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

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


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

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

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

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

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

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


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



以上ご参考まで。

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ