1つだけ過去を変えられるとしたら?

こんにちわ。
エクセルで経理関係の表を作っているのですが、イベントプロシージャにて、特定の列のセルに入力された数値に対して、許容範囲か否かサインを出して(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(この表があるところ)です。
どなたか詳しい方おられましたら、ご教授の程お願い致します。<(_ _)>ペコリ 

A 回答 (2件)

>Target.Value = s


転記式の右辺と左辺が逆でしょう。

この回答への補足

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

補足日時:2005/08/24 18:03
    • good
    • 0

>Dim i As String


>If i = "○" Then
今度は変数iになにもセットせずにIf文判断してますよ。

>A列のみ音がでるのですが、
>AB列(上図訂正)では自分で書き込んでも音が出ません・・・
???AB列は音が出るけれど、N列では出ないのでは?

ステップ実行などでご自分で動作検証できないと
時間が掛かるだけです。
    • good
    • 0

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