- ベストアンサー
エクセル VBA 色が付いているセルを無色にする
いつも皆様には大変お世話になっております 早速ですが・・・ 色の付いているセルをダブルクリックで無色にしたいのです。 どうしたらいいでしょうかよろしく
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
すみません、何がやりたいのか今ひとつわかってないのですが、 > この状態からH7~K7の色が付いてしまうと消えないので > ダブルクリックで消したいのです よろしくお願いいたします。 E3:E6の範囲のように、H7:K7の範囲のセルをダブルクリックしたらそのセルに色がついて、その他のセルを無色にしたいのであれば、 myRng.Interior.ColorIndex = 37 の前に Rng.Interior.ColorIndex = xlColorIndexNone を挿入したらいいでしょう。 そうでなくて、H7:K7の範囲のセルをダブルクリックしたら色がつき、もう一回ダブルクリックしたら色が消える、ということをしたいのであれば、 myRng.Interior.ColorIndex = 37 の部分を、 If myRng.Interior.ColorIndex = xlColorIndexNone Then myRng.Interior.ColorIndex = 37 Else myRng.Interior.ColorIndex = xlColorIndexNone End If のようにすればいいかと思います。
その他の回答 (2)
- ham_kamo
- ベストアンサー率55% (659/1197)
シートタブを右クリックして「コードの表示」を選択すると、VBAの画面が出るので、その画面の右側に以下のマクロをコピーして貼り付けてください。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Target.Interior.ColorIndex = xlColorIndexNone Cancel = True End Sub 貼り付けたらVBAの画面は閉じてかまいません。 これで、色をついているセルを(色のついてないせるも同じですが)ダブルクリックしすると、セルが無色になります。 普通はダブルクリックをしたらセルが入力状態になりますが、このマクロでは入力状態にしないようにしています。 ダブルクリックで入力状態にしたい場合は、 Cancel = True の行を削除してください。
補足
説明不足ですいません・・・ 現状で下記のようなVBAを組んでいるのですが、それの中に組み込みたいのです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim Rng As Range, myRng As Range Dim RngA As Range, myRngA As Range Set Rng = Range("H7:K7") Set myRng = Intersect(Target, Rng) If myRng Is Nothing Then Set RngA = Range("E3:E6") Set myRngA = Intersect(Target, RngA) If myRngA Is Nothing Then Exit Sub RngA.Interior.ColorIndex = xlColorIndexNone myRngA.Interior.ColorIndex = 46 Else myRng.Interior.ColorIndex = 37 End If Cancel = True End Sub この状態からH7~K7の色が付いてしまうと消えないのでダブルクリックで消したいのです よろしくお願いいたします。
- cafe_au_lait
- ベストアンサー率51% (143/276)
参考に。
お礼
お返事遅くなりませて申し訳ありません 今回は下の構文をいただきました。 わかりにくい文章ですいませんでした。 色々教えていただきありがとうございました。 また次回もよろしくお願いいたします