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

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim myRng As Range
Dim r As Range
Set myRng = Intersect(Target, Range("C5:T28"))
If myRng Is Nothing Then Exit Sub
Cancel = True
For Each r In myRng
If r.Value <> "" Then
r.ClearComments
r.AddComment (r.Text)
r.Value = ""
Else
On Error Resume Next
r.Value = r.Comment.Text
r.ClearComments
On Error GoTo 0
End If
Next
End Sub
のマクロがあるのですが、複数のセルを選択する時(4行目のRANGEの所)をAS5:BJ28、
BN5:CE28、CI5:CZ28、DD5:DU28、DZ5:EQ28、EU5:GG28、GK5:HB28、HF5:HW28,
IA5:IR28を入れる場合のマクロ構文を教えて欲しいです。
宜しくおねがいします。

質問者からの補足コメント

  • 試したのですが、実行すると全部きえてしまいます。自分としては、どの表をクリックしてもこのマクロみたいな、クリックしたら消えてまたクリックしたら戻るというようにしたいです。

    「複数のセルの選択」の補足画像1
      補足日時:2019/01/16 00:15

A 回答 (3件)

このマクロ、何となく覚えています。

「実行すると全部きえてしまいます」ということは、Intersectも取っちゃったのですね。No.1、2さんの回答は、その説明にも書かれている通り、「範囲だけの指定」方法を説明されたものなので、TargetとのIntersectはそのままにしておかないとダメですよ!!
    • good
    • 0
この回答へのお礼

はい。勉強になりました。有難うございます。

お礼日時:2019/01/20 12:54

No.1です。



今回の質問に関しては

>複数のセルを選択する時(4行目のRANGEの所)を・・・
とありますので、お示しの範囲だけの指定の回答です。

お示しのコードそのものはおそらく他の方が回答されたものだと思いますので
動きそのものはこちらでは確認しておりません。m(_ _)m
    • good
    • 0
この回答へのお礼

お忙しい所回答有難うございます。質問の文章が下手で申し訳ありません。補足にも示した通り複数の表にも同じ様にしたいと思ってるのですが…。

お礼日時:2019/01/16 12:37

こんばんは!



範囲だけの指定で良いのですね。
範囲を確認してみるとEU5:GG28の範囲の列幅に規則性がないようなので・・・

>Set myRng = Range("AS5:BJ28,BN5:CE28,CI5:CZ28,DD5:DU28,DZ5:EQ28,EU5:GG28,GK5:HB28,HF5:HW28,IA5:IR28")

としてみてはどうでしょうか?

※ 列が何列おきにか?という規則性があればもっと簡単にできると思います。m(_ _)m
    • good
    • 0
この回答へのお礼

有難うございました。

お礼日時:2019/01/19 10:55

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