プロが教えるわが家の防犯対策術!

上司に言われた締め切りがあと4日になってしまいました。
在庫管理で在庫残高シートに次のプログラムをはってみました。
Private Sub Worksheet_Change(ByVal Target As range)
Dim clm As Integer '変化したセルの列
Dim row As Integer '変化したセルの行
Dim counter As Integer '不足数

clm = Target.Column
row = Target.row
If Worksheets("在庫残高").Cells(row, clm) < Worksheets("在庫限界入力").Cells(row, clm) And Worksheets("在庫残高").Cells(row, clm) > 0 Then
counter = Worksheets("在庫限界入力").Cells(row, clm) - Worksheets("在庫残高").Cells(row, clm)
MsgBox counter & "本在庫不足", vbOKOnly, "注意"
Else
If Worksheets("在庫残高").Cells(row, clm) < 0 Then
MsgBox "在庫がありません", vbOKOnly, "警告"
End If
End If
End Sub

アクティブになってる入力シートに入力したときに、アクティブシートにメッセージボックスを出したいのですが、どうすればよいでしょう。複数の入力シートに
これを全て貼り付けることも考えましたが、入力シートの何個かのセルが、
在庫残高シートの一つのセルに参照されるようになっているので、そうしないほうが、
いいんじゃないかなとおもいました。
よろしくお願いします。

A 回答 (1件)

ブックのイベントモジュールで


シートがアクティブになった時と変更の時で制御すれば、いいですよ。

具体的例として....
Option Explicit

Dim chg As Boolean
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
chg = False
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Not chg Then

MsgBox CStr(Target.Value)
chg = True

End If

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
とりあえず、自分のできる範囲で作ってしまいました。
おかしくなったときに、自分でやったものを治すことはできますから。
でも、今度いろんなものを作るときに、皆さんの意見を参考に
していきたいと思います。
本当に感謝しています。

お礼日時:2002/03/31 10:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!