• 締切済み

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に表示されません。 値をセットして直ぐに表示させるにはどうしたらいいでしょうか?

みんなの回答

  • 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 にします。 その下は、) が足りませんが、表記ミスだと思います。

関連するQ&A

専門家に質問してみよう