OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセルで、こうやっても反応なしです。

  • すぐに回答を!
  • 質問No.243241
  • 閲覧数58
  • ありがとう数0
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 55% (64/116)

よろしくお願いします。以下のように組んで見ました。
Private Sub Worksheet_Change(ByVal Target As range)
Dim clm As Integer
Dim row As Integer
clm = Target.Column
row = Target.row
If Worksheets("発注指示").Cells(row, clm) = "不足" Then
MsgBox "在庫不足", vbOKOnly, "注意"
End If
End Sub
どうして動かないのでしょう。
本当にわからないので、教えてください。
これで一日つぶれました。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

シートまたはBookの全体が見えないので断定できませんが、質問のコードだけをみれば問題ないでしょう。
何を行いたいか完全にはわかりませんが、コードは機能しているはずです。

Worksheet_Changeが貼り付けてあるのはシート『発注指示』ではないと思いますが、このマクロがあるシートのセルの値を変更した場合、シート発注指示の同じセル座標に『不足』の文字が入っていればメッセージが出ます。
例えば、シート『発注指示』のセルA1にのみ『不足』と入力されていれば、Worksheet_Changeが貼り付けてあるシートのセルA1を変更した場合のみ、メッセージが出ることになっています。
従って、シート『発注指示』に不足の文字が入っているセルと同じセルを変更しないとメッセージは出ません。

Worksheet_Changeが貼り付けてあるのがシート『発注指示』ならば、書き換えてしまうわけで機能しませんね。

どうも、シート発注指示とWorksheet_Changeが書かれているシートがどうなっているのかイメージが湧きません。
何故rowとcolが固定?? 1つ前の質問もそういう訳で?ですね。
補足コメント
majimekun

お礼率 55% (64/116)

ありがとうございます。
いろいろやっているうちに、出たり出なかったりして困っています。
このコードがはってあるのは、出荷の入力シートです。同じシートが何枚もあり
ます。
>従って、シート『発注指示』に不足の文字が入っているセルと同じセルを変更し>ないとメッセージは出ません。
ご指摘のとおり、同じセル以外にも、不足と変化する別のアドレスのセルが
あります。
一度、同じセルだけなら何本不足というところまでいったのですが、
やっているうちに、同じセルでもいかなくなりました。
出荷入力シートの一つだけで実験しているから悪いのでしょうか?
よろしくお願いします。
投稿日時 - 2002-03-29 10:24:33
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル14

ベストアンサー率 51% (1179/2272)

こんにちは。maruru01です。 Worksheets("発注指示").Cells(row, clm) のところを、 Worksheets("発注指示").Cells(row, clm).Value かな。 ちなみに、 「かんたんプログラミング Excel2000VBA For Windows」   著:大村あつし  出版社:技術評論社 と ...続きを読む
こんにちは。maruru01です。

Worksheets("発注指示").Cells(row, clm)
のところを、
Worksheets("発注指示").Cells(row, clm).Value
かな。

ちなみに、
「かんたんプログラミング Excel2000VBA For Windows」
  著:大村あつし  出版社:技術評論社
という本は、「基礎編」「コントロール・関数編」「応用編」わかりやすいですよ。
3冊で7000円ほどしますが、初心者やプログラミングをあまり知らない人向けです。
では。


  • 回答No.3
レベル13

ベストアンサー率 68% (791/1163)

質問にあるコードを見て言えることは、 (1)Worksheet_Changeが書いてあるシートしかメッセージは出ない。    Worksheet_Changeが書いてないシートでは何も出ない。 (2)このWorksheet_Changeが書いてあるシートで、     シートのセル(r行目c列目とする)に入力した場合、     シート『発注指示』のr行目c列目に『不足』の文字があればメッセ ...続きを読む
質問にあるコードを見て言えることは、

(1)Worksheet_Changeが書いてあるシートしかメッセージは出ない。
   Worksheet_Changeが書いてないシートでは何も出ない。

(2)このWorksheet_Changeが書いてあるシートで、
    シートのセル(r行目c列目とする)に入力した場合、
    シート『発注指示』のr行目c列目に『不足』の文字があればメッセージが出る。
    『不足』の文字がなければメッセージは出ない。

(3)このWorksheet_Changeが書いてあるシートで、
    Worksheet_Changeが書いてない他シートを参照しているセルがあり、
    他シートの値を変えた場合はWorksheet_Changeは発生しない。
     (Worksheet_Changeが書いてあるシートのセルの値は変わるがChangeイベントは発生しない)

ということでしょう。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ