• ベストアンサー

実行時エラー’13’が表示される

VBA初心者です。 今、C列とAM列に1~10までの数字のリストがあり、 1,5,6を選んだ場合に”時間を入力してください”という メッセージを出すVBAを組んでいるのですが、 入力した数値をDelteで消した場合に実行時エラー'13'が表示されます。 ちなみにBackSpaceで消した時は何も出ません。 以下、VBAの記述です。 Private Sub Worksheet_Change(ByVal Target As Range)  If (Target.Value = 1 Or Target.Value = 5 Or Target.Value = 6) Then   MsgBox ("時間を入力してください")  End If End Sub ヘルプをみてもよく分かりません。 誰かお詳しい方がいらっしゃいましたらご教授願います。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

>>セル1個のDeleteでもエラーになりますか? >セル1個のDeleteでエラーになります。 Excel2007ではエラーにならないのですが、もしかして結合セルだとかいうことはないでしょうか。 その場合でも If Target.Count > 1 Then Exit Sub で対処できると思います。 実行時エラー'13'の内容はどうなっているでしょうか。

lickdog99
質問者

お礼

仰るとおり、結合セルです。 If Target.Count > 1 Then Exit Sub で対処できました。 本当にありがとうございます。

その他の回答 (1)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

セル1個のDeleteでもエラーになりますか? 複数のセルをDeleteしているのではありませんか? 例えば If Target.Count > 1 Then Exit Sub のように TargetをCountして、1以上ならExit Sub(Supプロシージャから抜ける) します。 余談ですが、 Intersectメソッドで、Target範囲を限定することができます。

lickdog99
質問者

お礼

早速の回答ありがとうございます。 >セル1個のDeleteでもエラーになりますか? セル1個のDeleteでエラーになります。 >複数のセルをDeleteしているのではありませんか? 複数のセルでもエラーになります。 Intersectメソッドはちょっと調べてみます。

関連するQ&A