プロが教える店舗&オフィスのセキュリティ対策術

15人をA、B、C、D、Eの5チームに分ける表をエクセルでつくりたいと考えています。
 
 (1)1行目に1人目のデータ。A1列に氏名。
 (2)1人目がAチームなら、B1をクリックすると赤に変わり、かつ「A」とそのセルに表示。
 (3)Bチームに変更したければ、C1をクリックすると青に変わり、かつ「B」とそのセルに表示。その際、B1の色を消す。
 (4)Cチームの場合は、D1をクリック、黄色に変わり、かつ「C」と表示。その際、B1もしくはC1の色を消す。
 (5)Dチームの場合はオレンジ、Eチームの場合は緑、でそれぞれ同様にE1、F1に「D」「E」と表示。
 (6)2人目以降は同様に、2行目以降に表示。それぞれの行が干渉しないようにする。
 

 以上が1試合目で、2試合目、3試合目も行う。
 ただし、2試合目以降は、3チームに分ける。
 (1)2試合目はG、H、Iのセル、3試合目はJ、K、Lセルを使う。
 (2)2試合目、3試合目のチーム名はA、B、Cではなく、ア、イ、ウとする。(2試合目、3試合目共にア、イ、ウ)
 (3)1試合目はそのままで、2試合目、3試合目は別の色に変える。(Aチームは薄い赤、Bチームは薄い青、Cチームは薄い黄色)→細かな色の違いにはこだわりません。
 (4)4試合目以降は行わない。
 
 文章だけでは、表現力不足が大きく、非常にわかりにくいと思いますが、どうぞよろしくお願いいたします。
 何度も同じような質問を重ねています。大変申し訳ありません。

A 回答 (2件)

色つけは前回同様条件付き書式で行います


ただし,Excel2003以前ではBCDEF列の5色の塗り分けは出来ないので,前回お話しした2番目の方法で「B列にはB列の色を付ける条件付き書式,C列はC列の条件付き書式…」の手順でおこないます。

#ご利用のエクセルのバージョンが相変わらず不明のままです。ご質問では,必ずご利用のソフトのバージョンまでしっかり明記して投稿してください。



マクロの方は前回の単なるバリエーションで,WクリックされたのがBCDEF列だった場合とGHI・JKLだった場合とで,異なる作業をさせるよう処理を淡々と分岐していくだけです。
何をやっているのかアナタに判りやすいように,わざとベタな方法でどこでWクリックされたからどこを処理させるのか位置を求めてみます。


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Dim s As Range, c As Integer
 Dim a1, a2
 If Target.Column = 1 Or Target.Column > 12 Then Exit Sub
 a1 = Array("A", "B", "C", "D", "E")
 a2 = Array("ア", "イ", "ウ")

'位置決め
 if target.column < 7
 ’B列群
  Set s = cells(target.row, "B")
  c = target.column - 2
 elseif target.column < 10
 ’G列群
  set s = cells(target.row, "G")
  c = target.column - 7
 else
 ’J列群
  set s = cells(target.row, "J")
  c = target.column - 10
 end if


'クリア
 s.Resize(1, iif(s.column = 2, 5, 3)).ClearContents

'記入
 Target = IIf(s.Column = 2, a1(c), a2(c))
 Cancel = True
End Sub
    • good
    • 0
この回答へのお礼

何度も申し訳ありません。自由自在にあやつれたら…と歯がゆく思います。
エクセルのバージョンは2003なのですが、お教えいただいたプログラムでは、構文エラーが出てしまいます。
再々度、質問させていただきますので、もしご都合よろしければ、お教え下さい。
何度も失礼をし、たいへん申し訳ありません。

お礼日時:2011/08/02 20:08

セルの書式ですね


書式から条件付書式で可能と思います
    • good
    • 0
この回答へのお礼

ありがとうございました。なんとか、クリックのみで記入できるようにしたいのですが…。

お礼日時:2011/08/02 20:09

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