- 締切済み
ExcelVBAで直ぐに繁栄しないPrivate
ExcelVBAで直ぐに繁栄しないPrivate Sub Worksheet_Change(ByVal Target As Range) If Target = Range("A1") Then Range("B1").Value=fncMojiHenkan(Range("A1").Value End If End Sub セルA1に文字列を入力したり、他から文字列をコピペしてEnterキーを押しても、セルB1に直ぐに繁栄されません。 もう一度Enterキーを押すか矢印キーでセル移動しないとセットした値がB1に表示されません。 値をセットして直ぐに表示させるにはどうしたらいいでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
回答No.2
シートのセルのChangeイベントは、即反映されます。質問者の場合に、しないのは、コードの書き方が悪いから(それだけ)です。 > Target = Range("A1") では変化したセルの値が、A1の値と等しい場合となるのですが、そういうことではなく、「変化したセルが番地A1セルならば」は If Target .Address="$A$1" then として、変化したセルを番地で限定します。
- SI299792
- ベストアンサー率47% (780/1631)
回答No.1
If Target = Range("A1") Then だと、Targetと、Range("A1") の値が一致した時という意味になります。 だから、前の値と今の値が同じ時だけ起動します。 If Target.Address = "$A$1" Then にします。 その下は、) が足りませんが、表記ミスだと思います。