エクセル クリックでセルの色を変えるには?(2)
先日、質問をさせていただき、それに対して素晴らしいご回答をいただきました。
今回は、さらに要望をさせていただきたいと考えています。
以下、(1)最初の質問、(2)それに対するご回答、(3)更なる要望 の順に掲載いたします。
(1)最初の質問
9人をA、B、Cの3チームに分ける表をエクセルでつくりたいと考えています。
(1)1行目に1人目のデータ。A1列に氏名。
(2)1人目がAチームなら、B1をクリックすると赤に変わり、かつ「A」とそのセル表示。
(3)Bチームに変更したければ、C1をクリックすると青に変わり、かつ「B」とそのセルに表示。その際、B1の色を消す。
(4)Cチームの場合は、D1をクリック、黄色に変わり、かつ「C」と表示。その際、B1もしくはC1の色を消す。
(5)2人目以降は同様に、2行目以降に表示。それぞれの行が干渉しないようにする。
なお、以上が1試合目で、2試合目のチーム分けをそれぞれのメンバーの行の、E、F、Gの列を使って、同様に行えるようにできれば完璧なのですが…。
(2)ご回答
シート名タブを右クリックしてコードの表示を選び,下記をコピー貼り付ける
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim s As Range, c As Integer
If Target.Column = 1 Then Exit Sub
’位置決め
Set s = Target.Offset(0, -(Target.Column + 1) Mod 3)
c = Target.Column Mod 3
’クリア
s.Resize(1, 3).ClearContents
s.Resize(1, 3).Interior.ColorIndex = xlNone
’記入
Target.Interior.Color = Array(vbBlue, vbYellow, vbRed)(c)
Target.Font.Color = Array(vbWhite, vbBlack, vbWhite)(c)
Target = Array("B", "C", "A")(c)
Cancel = True
End Sub
B列以降をWクリックする。
(3)さらに要望
(1)1試合目はそのままで、2試合目、3試合目のチーム名はA、B、Cではなく、ア、イ、ウとする。(2試合目、3試合目共にア、イ、ウ)
(2)1試合目はそのままで、2試合目、3試合目は別の色に変える。(Aチームは薄い赤、Bチームは薄い青、Cチームは薄い黄色)→細かな色の違いにはこだわりません。
(3)4試合目以降は行わない。
(4)可能ならば、ダブルクリックではなく、クリックでできるようにする。
つたない文書で申し訳ありません。
VBAについて全く理解できていませんので、このような質問になりました。
どうぞよろしくお願いいたします。