• ベストアンサー

エクセルのVBAを使用してA列に×が入力された場合のみ、

エクセルのVBAを使用してA列に×が入力された場合のみ、 ×が入力されたセルだけ削除し上方向へシフトをダイアログボックスも表示せずに行うにはどの様に記述すれば良いでしょうか? どなたかご教授をお願いします。 【環境】 OS = WindowsXP SP3 Excel = 2003

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

勿論FALSEでしたらマクロは終了します。 マクロに書き込むのでしたら、Else Exit Sub を入れることでも良いですね。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Value = "×" Then Target.Select Selection.Delete Shift:=xlUp Else Exit Sub End If End Sub

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えば次のようなマクロになるでしょう。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Value = "×" Then Target.Select Selection.Delete Shift:=xlUp End If End Sub

noname#201736
質問者

補足

ご回答ありがとうございます。 WATABE002にも補足させて頂きましたが、 FALSEでの場合はどうすべきでしょうか?

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

以下、シートモジュールにコピペ Private Sub Worksheet_Change(ByVal Target As Range)   With Target     If .Count > 1 Then Exit Sub     If .Column <> 1 Then Exit Sub     If .Value = "×" Then .Delete Shift:=xlUp   End With End Sub

noname#201736
質問者

補足

ご回答ありがとうございます。 ご指示通りで出来ました。 ちなみに・・・ 質問の主旨とは変わってしまいますが、 ×がFALSEのときはこの記述では不可ですよね? FALSEで場合はどうすべきでしょうか?

関連するQ&A