プロが教えるわが家の防犯対策術!

エクセル2000です。
以下のワークシートチェンジイベントがうまくいきません。
Targetに値が入る場合は問題ないのですが、TargetをクリアしてもRange("F5").MergeAreaがクリアされません。
Targetをクリアした後、TargetをダブルクリックしてからEnterキーを押せばRange("F5").MergeAreaがクリアされるのですが、いちいちそうさせるわけにもいきません。
どうしたらよいのでしょうか?

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$C$5" Then Exit Sub
If Target.Value <> "" Then
Range("F5").Value = Range("D42").Value
Else
Range("F5").MergeArea.ClearContents
End If
End Sub

A 回答 (14件中11~14件)

Sub test()


  Application.OnKey "{DEL}", "CellClear"
End Sub
Sub CellClear()
  If ActiveSheet.Range("C5") Then
    ActiveSheet.Range("C5").MergeArea.ClearContents
  End If
End Sub
    • good
    • 0

No1です。


そうですね。失礼しました。
他のBOOKでは、問題なく動作するならば、正しく動作しないブックの問題かも知れませんね。
何かの設定がされているかも・・・
実際BOOKを見ないと分かりませんが・・・
最終的な方法としては、別のBookにするとか・・・
    • good
    • 0
この回答へのお礼

やっとわかりました!!

TargetのC5セルがD5セルとMergeしているのが原因のようです。
結合を解除したところちゃんと作動しました。

ただ、レイアウト上、やはりD5と結合させたいのですが、Targetが結合セルの場合、コードをどう直せばいいのでしょうか?

お礼日時:2008/10/15 14:51

エクセル2000で試してみましたが、再現しませんね。



クリア後のチェンジイベントは、カーソルがそのセルから移動した時に発生しますが、そういう意味ではないですよね?
(ただし、デリートキーでセルをクリアした時は、その瞬間にイベントが発生するみたい)

デバッグ方法としては・・・
Range("F5").MergeArea.Select
Msgbox("Check")
Selection.ClearContents
などとしてみれば、どちらが効かないのかわかるかも。
あるいは、PC固有の問題の可能性もあるので、別のPCが近くにあれば、そちらで試してみるとか・・・

それでもダメなら、対処療法ですが・・・
上の行でF5に代入できているので、F5が結合の左上になっているのだと推測して、Range("F5").Value = ""と直接クリアしてしまえばなんとかなりませんか?
(根本解決ではないので、気持ち悪いけど)
    • good
    • 0
この回答へのお礼

ありがとうございます。
No1のお礼にも書きましたが、特定のBOOKの問題のようです。

If Target.Value <> "" Then
Range("F5").Value = Range("D42").Value
MsgBox ("AAA")
Else
Range("F5").MergeArea.ClearContents
MsgBox ("BBB")
End If

とチェックしてみましたが、C5をDelキーでクリアしてもどちらのメッセージもでないのでイベントが発生していないのだと思います。(値が入力された場合はちゃんとAAAのメッセージが出ますが)

どんな原因が考えられますでしょうか?

お礼日時:2008/10/15 14:08

こんにちは。


もしかして、「Delete」キーを使えないように設定されていないですか?

  Application.OnKey "{DEL}", ""  '←「Delete」キーが使えない
  ↓
  Application.OnKey "{DEL}"    '←「Delete」キーを使えるようにする
    • good
    • 0
この回答へのお礼

さっそくありがとうございます。
「Delete」キーでTargetのC5セルをクリアできてますので、「Delete」キーを使えないように設定されていないと思います。

今、あたらしいBOOKにまったく同じコードを入れて試したら「Delete」キーだけでもちゃんと作動しました。

どうやらできなかった特定のBOOKに問題があるようです。
どんな原因が考えられますでしょうか?

お礼日時:2008/10/15 13:54

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

このQ&Aを見た人はこんなQ&Aも見ています