dポイントプレゼントキャンペーン実施中!

総当たり表のエクセルマクロ
エクセルで総当たり表を作るとします。分かりやすくするため,アからオの5人で,BからF列の1行目にアからオ,A列の2から6行目にアからオと入力された総当たり表だとします。
総当たり表の外のセルの2箇所をそれぞれ対戦者入力セルとして,そこに対戦者の名前(ア~オ)を入力すると,自動的に総当たり表に○をつけてくれるマクロを作成したいと思っています。1回の組み合わせで自動的に2箇所に○をつけるマクロです。
そんな面倒なことをしなくても表に直接○をつければいいと思われるかもしれませんが,実は対戦者が膨大なので1回の組み合わせで2箇所に○をつけるのが手間なのです。

それと,対戦者入力セルの1箇所に名前を入力すると,他のセルにまだ対戦していない名前が表示され(リストのような形で)クリックで他の対戦者を入力できるようにしたいと思っています。

エクセルは昔ちょこっとだけVBAをかじったことがある程度で,今は忘れてしまいました。
仕事で急遽依頼されており,困却しております。
心やさしい方,ご教示願います。

A 回答 (1件)

  A B C D E F


1   ア イ ウ エ オ
2 ア *
3 イ   *
4 ウ     *
5 エ       *
6 オ         *

こんな対戦表は作るんですよね。
>1回の組み合わせで2箇所に○をつけるのが手間なのです。
という事であれば、対戦表自体、ダブルクリックで1箇所に○をつけたら
もう一方にも○がつくようにしたほうが簡単かと。

・シートModuleのWorksheet_BeforeDoubleClickイベントを使う。
・IntersectメソッドでダブルクリックしたTargetが
 Range("B2").Resize(5, 5)範囲に含まれるかどうか判定する。
含まれている時だけ以下の処理。
・Cancel = True
・Target.Valueが空白だったら"○"にする。
・同時にCells(Target.Column, Target.Row)も"○"にする。
やり直すケースもあるなら
・Target.Valueが"○"だったらClearContentsする。
・同時にCells(Target.Column, Target.Row)もClearContentsする。
    • good
    • 0

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