カラースケールとデータバーを切り替える

こころマクロ、組み合わせセットのステータスを並べ替えられるようにして以来、ダブルクリックでの並べ替えが楽しくて、ついつい並べ替えしているうちに次の思いが芽生えてきました。「カラースケールだと微妙な差がわからん・・・」。Excelは2007以降、条件付き書式が超絶強化され、2003以前は背景色4色までしか指定できなかったのが、フルカラーの指定が可能に。それどころかセルの中にグラフを表示するデータバーまで実装され、もう大抵の表現は条件付書式で行けてしまうのではと、当時歓喜したことを思い出します。しかも描画もめっぽう速いのです!そんなデータバーであれば、微妙なステータスの差も可視化できるのではなかろうと思い付いてしまったが最後、実装したくて仕方なくなってしまい、平日にもかかわらず早起きしてプログラミング、あぁーほんと楽しい!

ちょっとハマってしまったのが、現在設定している条件付き書式カラースケールの色取得。最小値と最大値にそれぞれ色指定をしていて、例えば「ちから」であれば赤系統、HPであれば緑系統、などステータスを想起できるように手動かつ入念に色指定しています。マクロでそれらを書き換えることになるので、ちゃんと戻せるように、というよりマクロで指定できるように、現在の色を取得しておきたいところ、なかなかうまくいかなかったのですが、結論から書くと、こんな感じでした

FormatConditionsプロパティが常に配列となるのがミソですね。ステータスのセルは条件付きを1種類しか指定していないのですが配列となっていてここで躓きました。結果、FormatConditions(1)と決め打ちでOK。複数の条件を設定している場合は、FormatConditions.count分、ループで回す必要がありますね。そして、肝心のセット部分はこのように、Rangeと色を引数にしてCallするサブプロシージャとして実装しました。

データバーは、横棒グラフの開始位置、終了位置を指定することができ、.PercentMin = 10 は、セルの左10%幅からグラフを開始という指定、値が最小の場合セル幅の10%がグラフとして描画されることとなります。同様にして、PercentMax = 100 で、最大値の場合セル幅いっぱいにグラフが描画されます。

切替は動的に行いたく、例によってステータス欄の上部をダブルクリックすると切り替わるようにしました。

このダブルクリックのインターフェイス、私、大好きなのです。次が「結果」シートモジュールのイベントプロシージャです。
1.こころの詳細画面表示
2.ステータス昇順にこころセットデータを並べ替え
3.表示の切り替え(カラースケール<>データバー)
の3種類の処理を、ダブルクリックしたセルであるTargetの行番号、列番号で判断し、分岐させているわけです。

さあ、こんな感じで実装した、カラースケールとデータバーの表示、わかりやすくなったでしょうか。

従来からのカラースケールによる表示
こちらが、新実装のデータバーによる表示

綺麗と言えば綺麗なのですが、カラースケールのほうがわかりやすい気がしてきた・・・・

コメント

  1. でーびー より:

    お疲れ様です

    ややや!見やすいです!寧ろスコアもグラフの方が、ソート後に見やすいケースもありそうですね。

    グラフはやはりminをゼロではなく今回の様に実数引用が見やすいです

    自分なんかは、最小値ゼログラフにしてしまっていましたが、10%表記は見てみて、見易かったです。

    あとは、ネイティブアプリと違いエクセルならではで、好きな箇所のセル幅を自分で好きなだけ大きくすれば、より直感的に見れます。

    副産物で、例えばバトマスで、ほぼ絶対関係の無い魔力が、最強セットの時にグラフが短いと、『あぁ、コスパとしても無駄なく最強だ!』が実感できますw

    ソース拝見しましたが・・・見たこと無いコマンド多々www

    例えば、更に各要素トップテンや偏差値いくつ以上に入るところは更にフォントカラーを赤く・・・ いや、何でもありませんwww

タイトルとURLをコピーしました