• 締切済み

イベント(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(この表があるところ)です。 どなたか詳しい方おられましたら、ご教授の程お願い致します。<(_ _)>ペコリ 

みんなの回答

  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.2

>Dim i As String >If i = "○" Then 今度は変数iになにもセットせずにIf文判断してますよ。 >A列のみ音がでるのですが、 >AB列(上図訂正)では自分で書き込んでも音が出ません・・・ ???AB列は音が出るけれど、N列では出ないのでは? ステップ実行などでご自分で動作検証できないと 時間が掛かるだけです。

  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.1

>Target.Value = s 転記式の右辺と左辺が逆でしょう。

tanaka-saburo
質問者

補足

早速のご教授ありがとうございます。<(_ _)> ご指摘の箇所を修正してみましたが、自分で書き込んだ時、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

関連するQ&A

専門家に質問してみよう