こんにちは、エクセルに詳しくないので教えてください!

例えば J4~AA38の間のセルを選択した時に、選択したセルのみ値をクリアするにはどうしたら良いでしょうか。

詳しいかた、よろしくお願いいたします。

A 回答 (4件)

No.2・3です。



>J4:AA38はそのままに、H1をクリックしたらH4:H38の値全てをクリアする。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("H1,J4:AA38")) Is Nothing Then Exit Sub
Cancel = True
With Target
If .Row = 1 Then '//←ダブルクリックセルがH1の時//
Range("H4:H38").ClearContents
Else
.ClearContents
End If
End With
End Sub

こんな感じになると思います。m(_ _)m
    • good
    • 0
この回答へのお礼

何度も教えていただき、ありがとうございます。

お陰様で、ばっちり出来ました!

感謝感激!

お礼日時:2017/05/18 04:00

No.2です。



>追加として、応用し、以下のようなコードを入れてみたのですが・・・
複数のダブルクリックイベントなどは共存できません。
範囲をH1~H38とJ4~AA38の範囲限定としたいのですね?

前回のコードを消去し↓のコードに変更してみてください。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("H1:H38,J4:AA38")) Is Nothing Then Exit Sub
Cancel = True
Target.ClearContents
End Sub

すでにお判りかと思いますが、セル範囲を飛び飛びにしたい場合は
範囲をカンマで区切ります。
もちろん範囲を追加しても構いません。m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

なるほどです、セル範囲が複数ある場合はカンマで区切れば良いのですね。


それでは、こんな事って出来ますか?

J4:AA38はそのままに、H1をクリックしたらH4:H38の値全てをクリアする。

と言うようなものです。

お手数ですが、お手すきの時にでも教えて頂けませんでしょうか。

よろしくお願いいたします。

お礼日時:2017/05/17 22:40

こんにちは!



>選択したセルのみ値をクリアするには・・・

間違ったセルを選択しても消去されてしまいますので、ダブルクリックした場合に消去ではどうでしょうか?
一例です。シートモジュールにしてください。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("J4:AA38")) Is Nothing Then Exit Sub
Cancel = True
Target.ClearContents
End Sub

上記コードは1セルずつの操作になります。
選択したセルを一気に消去したい場合はチェンジイベントで対応できると思います。
↓のコードにしてみてください。(同じくシートモジュールです)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
For Each c In Selection
If Not Intersect(c, Range("J4:AA38")) Is Nothing Then
c.ClearContents
End If
Next c
End Sub

※ セルを選択した時点で実行されてしまいます。

※ 極端に広範囲(列全体や行全体など)を選択しないでください。
おそらく「応答なし」になってしまうと思います。m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ばっちり出来ました。

追加として、応用し、以下のようなコードを入れてみたのですが、名前が適切ではないエラーが出てしまいます。

よろしければ教えて頂けませんでしょうか、よろしくお願いいたします。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("H1:H38")) Is Nothing Then Exit Sub
Cancel = True
Target.ClearContents
End Sub

お礼日時:2017/05/17 17:12

名前ボックス または [Ctrl]+[G] で J4:AA38 と入力し[Enter]


[Delete]キー:値の削除
    • good
    • 0

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

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


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング