エクセル術

Excelでトーナメント表を作り、勝ち進みをボタン一つで切り替える

今年も全国高校野球選手権大会、甲子園始まりましたね。自分の母校は惜しくも地区大会決勝で負けてしまったので出ないのですが、でも甲子園見るの好きです。

地区大会をWebで確認してたのですが、トーナメント結果をExcelファイルで添付しているところがありました。
それを見て「あーなるほどね」と思ったのでちょっと機能を追加してトーナメント表を作ってみたいと思いました。

罫線でトーナメント表

さくっと作ってみます。こんな感じですかね。

出場校の部分は2行のセルを結合することで、トーナメント表をセルの罫線で作ることが出来ます。A校の線はB列の3、4行間から出します。
ま、このあたりは説明不要ですよね。これだけだと単純すぎるので機能を加えていきます。

 

オプションボタン+条件付き書式で勝ち負けを切り替え

  1. オプションボタンを設置・設定
  2. オプションボタンのリンクセルから条件付き書式で罫線を色替え

工程はこんな感じです。

1.オプションボタンの設置・設定

さて、まずはオプションボタンを設置してみます。開発タブにある挿入から、ActiveXコントロールのオプションボタンを選択。
※フォームコントロールのオプションボタンではありません。どっちでもいいんだけどフォームの方はグループ化が面倒くさいので

オプションボタンをトーナメント表に設置します。大きさは小さめにね。文字Optionの文字隠れてても良いです、どーせ後で消す。

そして全体にコピーしまくる。こんな感じで配置完了。

 

次にこのオプションボタンの設定です。オプションボタンを右クリックすると「プロパティ」があるのでそれを選択。

するとプロパティウィンドウが出てきます。なんか色々ありますが、ここで設定するのは以下の3つ。

項目 説明 変更後
Caption 表示される文字列ラベルです。
デフォルトだと”OptionButton1”などが入っている。
(削除)
GroupName

複数のオプションボタンをグループ化させる項目。
任意の文字を入れて同一文字は同一グループと認識される。

A,B校のボタンは”1”
C,D校のボタンは”2”
2回戦のボタンは”3”

LinkedCell

ボタンを押された状態を”TRUE”
押されていない状態を”FALSE”
と、それをセルに出力させる。

A校のボタンは”C4”
B校のボタンは”C5”
C校のボタンは”C8”
というようにボタンの背景にあるセルを設定。
特にどこでも良いが、分かりやすいようにボタン位置と同じ場所のセルに。

 

A校のオプションボタンの設定はこんな感じになります。↓

動かしてみます

デザインモードを終了してオプションボタンを選択してみます。

ボタンの後ろに文字がチラッと見えますね、これはLinkedCellで設定したTRUE、FALSEが見えています。邪魔なので文字色を白にして見えないようにしときましょう。

さて、これでボタンが完成しました。次にトーナメント表の線に色を付けていきましょう。

条件付き書式を設定

まずB4セルを選択して条件付き書式の新規ルールを作成します。

「数式を使用して、書式設定するセルを決定」を選び、ルールの内容は「=C4=TRUE」とします。
※C4=”TRUE”というようにTRUEを””で括ってはだめです。

そして設定する書式には上と右の罫線を赤色にします。
太線を設定したいんですが、実は条件付き書式の罫線設定に太線がありません。これは仕様なのでどうしようもないです。元々の線を点線やもっと細い線にするなどで対応するしか。

そうするとこうなります。

このようにして他の罫線もオプションボタンのリンクセルからTRUEの場合、罫線が赤くなるように設定していきます。

全ての条件付き書式が設定すれば完了です。

 

クリアボタンを付ける

オマケでクリアボタンを作ります。

それぞれの対戦のクリアボタンを押すとそのオプションボタンがリセットされ、罫線が黒に戻ります。全部を一括でクリアするボタンも設置。

VBAコードは以下のとおりです。

Sub ボタン7_Click()
 Cells(4, 3) = "FALSE"
 Cells(5, 3) = "FALSE"
End Sub

Sub ボタン8_Click()
 Cells(8, 3) = "FALSE"
 Cells(9, 3) = "FALSE"
End Sub

Sub ボタン9_Click()
 Cells(6, 4) = "FALSE"
 Cells(7, 4) = "FALSE"
End Sub

Sub ボタン10_Click()
 ボタン7_Click
 ボタン8_Click
 ボタン9_Click
End Sub

ただ単にリンクされているセルを”FALSE”入れるだけです^^;

あとはボタンなどのオブジェクトは印刷されない設定にしておくくらいですかね。

作ってみたものの

正直これを作るほうが面倒くさかったです(笑)手作業で作るほうが簡単ですね~。

ま、オブジェクトと条件付き書式を組み合わせてこんな事も出来ますよ、という紹介程度です^^;

とりあえずサンプルファイル置いておきますね。

モバイルバージョンを終了