[[20210406161039]] 『ExcelのVBAでセル選択して右クリックで色を塗りた』(marco3) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ExcelのVBAでセル選択して右クリックで色を塗りたい』(marco3)

ExcelのVBAにて、複数セルを選択した後に

(1)そのセルに色がついていなければ、指定の色を塗る
(2)そのセルに色がついていれば、色塗りを無にする

を実装したいのですが、色々調べてたり自分で試しにやってみましたがうまくいきません。

ご教授お願いします。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


 イベントが違いますが、参考になると思います。

[[20070119132330]] 『クリックするとセルの色が変わる』(ショート)
(OK) 2021/04/06(火) 16:33


 >複数セルを選択した後に 

 見落としてました。
 イベントではなく、手動で色を切替ですか。

 リンクした過去ログのコードは参考になると思いますが、
 コードの改造が必要になります。
(OK) 2021/04/06(火) 16:34

 参考コードです。

 Sub test()
  Dim c As Range
   If TypeName(Selection) <> "Range" Then Exit Sub
   For Each c In Selection
    MsgBox c.Interior.ColorIndex
   Next c
 End Sub
(OK) 2021/04/06(火) 16:41

>OK様

ありがとうございます
複数のセルを選択して右クリックをしてイベントを発生させたいのですが、
↓↓
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

    If Application.Intersect(Target, Range("A1:ZZ1000")) Is Nothing Then
        Cancel = False
    Else
        Cancel = True
        Target.Interior.ColorIndex = 45
    End If
End Sub
↑↑
実装可能となっているのですが、実は色を塗るだけで(2)の「色がついていたら無色にする」がどうしてもできません

もしどなたか教えていただければ幸いです。
(marco3) 2021/04/07(水) 14:41


OKさんが教えてくれたリンクの先に答えが書いてありましたよ
(参考) 2021/04/07(水) 14:47

 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim WK_RANGE    As Range

    If Application.Intersect(Target, Range("A1:ZZ1000")) Is Nothing Then
        Cancel = False
    Else
        Cancel = True
        For Each WK_RANGE In Intersect(Target, Range("A1:ZZ1000"))
            If WK_RANGE.Interior.ColorIndex = xlNone Then
                WK_RANGE.Interior.ColorIndex = 45
            Else
                WK_RANGE.Interior.ColorIndex = xlNone
            End If
        Next
    End If
 End Sub
 ではどうだろうか?

(ねむねむ) 2021/04/07(水) 14:55


>参考様
>OK様

そうですね、リンク先にまさしく答えが書いてありました!
複数セルでも反転しました
ありがとうございました!

と、ここでひとつ気が付いたのですが

【色有・色無のセルを複数選択している場合は何も動作しないのですが、このような状況でも状況判断してそれぞれを色有・色無へ反転することは可能なのでしょうか?】

ちなみに、セルは複数選択しますが、連続するセル選択が基本です。
よろしくお願い致します。
(marco3) 2021/04/07(水) 14:58


ねむねむさんのコードがまさにそういうコードです
(参考) 2021/04/07(水) 15:08

>参考様

ご指摘ありがとうございます
私のやりたかったことが全て解決できました

>ねむねむ様
ありがとうございました!
私がやりたかったことができるようになりました
本当に嬉しいかぎりです
参考書を色々よんでも全然進まなかったのですが、相談してみてよかったです
(marco3) 2021/04/07(水) 15:22


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.