- ベストアンサー
エクセル クリックでセルの色を変えるには?
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の列を使って、同様に行えるようにできれば完璧なのですが…。 文章がつたなく申し訳ありません。ぜひ教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
シート名タブを右クリックしてコードの表示を選び,下記をコピー貼り付ける 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クリックする。
その他の回答 (4)
- Cupper-2
- ベストアンサー率29% (1342/4565)
自分ならフォームを使うかな。 A列に名前 B~D列にボタン A列のセルには条件付き書式でセルの色が変わるように設定 B~D列のボタンの下に隠れるセルに選ばれたボタンに該当する値 各行にこれらを作成 こんな方法で作ります。 あとは好みに応じて多少いじりますね。
- imogasi
- ベストアンサー率27% (4737/17069)
質問の内容に関して補足のこと。 セルの色や文字色を変えるのは、エクセルの関数では出来ません。そんなことを考えてないでしょうね。 するとVBAか条件付書式の利用になる。 もうひとつ、セルをクリックする、ことを捉えるのはVBAのイベントという仕組みを使わないとできないと思う。 VBAなど経験があるのかな。実力以上の勝手にやりたことだけ言っているのでは。 ーーー 質問の意味や状態がわからないのだが、 (1)9人を3チームに分けるのは、人間が判断して決め(て人間がクリック)るのですか。 自動でセットするのか。 (2)3人ずつ3組なのか? B,C、D列に1とか入れるとか、B列にA,B、Cの文字を入れるではダメなのか。なぜ凝ったことをするのか。 ーーーー 質問に実例的なものを示して説明できないのか。 A列ーB列ーC列ーD列 山田 ・・ その人を、Aチームに所属させるときは、その人の行のB列セルをクリックし、 その人を、Bチームに所属させるときは、その人の行のC列セルをクリックし、 その人を、Cチームに所属させるときは、その人の行のD列セルをクリックする。 >それぞれの行が干渉しないようにする 一人の人ではB,C,D列複数クリックはしない(出来ない)ようにする、ということか。 >2試合目のチーム分けをそれぞれのメンバーの行の、E、F、Gの列を 第2試合で終わりか。第3,4試合も考えているのか 、
- TinyPine
- ベストアンサー率30% (719/2386)
通常の関数だけでは出来ないと思います。 マクロを使えば出来ますけど、エクセルマクロの知識はおありでしょうか。 http://kokodane.com/macro_kouza.htm
- yone-bou
- ベストアンサー率22% (4/18)
「書式」→「セル」→「パターン」ではなくてですか?
お礼
ありがとうございました。希望どうりのものができあがりました。