- 締切済み
イベント(Worksheet_Change(ByVal Target As Range)に詳しい方お願いします。
こんにちわ。 エクセルで経理関係の表を作っているのですが、イベントプロシージャにて、特定の列のセルに入力された数値に対して、許容範囲か否かサインを出して(IF関数)、そのサインがでれば音を出すマクロを組もうとしているのですが、なかなかうまく行きません。 商品 商品 A B C -------- L M N O | P Q--------AA 1 ○ | ▲ 2 | 3 | | この表で注意すべき赤字は▲、伸ばすべき黒字は○。 A1~N1が商品種別や単価などの情報です。 ○▲サインはIF関数にて表示出来るようにしたのですが、このサインが表示された時にマクロを実行するイベントとして、 ************************ Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 14 Then Application.EnableEvents = False Target.Value = s If s <> "" Then Call サイン発生通知 End If Application.EnableEvents = True End If If Target.Column = 28 Then Application.EnableEvents = False Target.Value = s If s <> "" Then call サイン発生通知 End If Application.EnableEvents = True End If End Sub ************************ としています。 音を出すマクロ自体は単体で(call サイン発生通知で)確認出来ているので、イベントプロシージャの記述に問題があると思うのですが・・・ 記述しているところは、Excelobject Sheet1(この表があるところ)です。 どなたか詳しい方おられましたら、ご教授の程お願い致します。<(_ _)>ペコリ
- みんなの回答 (2)
- 専門家の回答
補足
早速のご教授ありがとうございます。<(_ _)> ご指摘の箇所を修正してみましたが、自分で書き込んだ時、A列のみ音がでるのですが、AB列(上図訂正)では自分で書き込んでも音が出ません・・・ あと、サイン別に分けた方が後々役に立つので修正してみましたが、出来てない物は何しても出来ませんね・・・(^^; 現在↓こうしていますが・・・(わがままばかり言ってスイマセン・・・) Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 14 Then Application.EnableEvents = False Dim i As String If i = "○" Then Call サイン発生通知 ElseIf i = "▲" Then Call サイン発生通知2 End If Application.EnableEvents = True End If If Target.Column = 28 Then Application.EnableEvents = False Dim s As String s = Target.Value If s = "○" Then Call サイン発生通知1 ElseIf s = "▲" Then Call サイン発生通知2 End If Application.EnableEvents = True End If End Sub