はてなダイアリー  -ひまもてアーカイブス-

2016.1.6以前の記事はダイアリーのものです。

今日の作業メモ

昨日の続きでパラメータクエリについてもぐる予定が、新たなオーダー。
Excelの散布図の作り方」
そんなの作ったことない〜。しかも普通に作ってみたら、値以外のデータラベル列を指定して見栄え良くするということができない模様。あぁ困った。
いろいろ調べてみたけれど、結局VBAの出番のようだ。

成果

1.のサイトでは何とか(無理やり)ラベルを表示するため、項目同士を二次元のクロス表に変換する方法を提案している。このやり方の難点はずばりデータを作るのが面倒くさい。散布図なんてだいたいリスト表からグラフにしたいパターンがほとんどだと思うし、255行以上あるデータの場合、まずExcelでクロス表を作れないという問題もある。というわけで汎用性に乏しいので不採用。すでにクロス表の場合はこれが一番早いと思う。


2.のサイトで紹介されているツール、散布図作成用マクロはフリーで公開されているのだが、すっげー完成度高い。Excelで散布図作るなら、このツールを使えば何度かクリックするだけできてしまう。しかもデータラベルがつく。すばらしい!!ありがたくダウンロードさせていただいた。もちろんブックマーク。
→配布元サイト(他にも統計分析用マクロ有):EXCEL Macro
難があるとすれば、散布図を作るときこのマクロファイルを開いておく必要があるということくらい。
後でアドインに作り変えてしまおうと思うのだが、大丈夫だろうか・・。何も記載されていないのだけど。


後学のために、3.の本家Microsoftサイトで見つけたサンプルでも実践。このサンプル、データラベルをつけたいグラフをアクティブにして「マクロ」の実行をすると、グラフの範囲を読み取ってその範囲の右隣の列をデータラベル列として各ポイントに貼り付けてくれるというもの。何のカスタマイズなく動くことは動くけど、普通ラベルって表の左列にあるんじゃ・・。サンプルのテーブルもそうなってるのに、コードはOffset(0,1)って!バグだよこれは。
てことでこのOffset値を実行時に指定できるようにして(データ系列の1列左とは限らんし)みた。このモジュールさえあればひとまずはグラフの格好がつくので、よしとしよう。
難点は今のところ下記

  • 実行するときはグラフをアクティブにしなきゃならん
  • グラフを作るブックにモジュールを入れなければいけない為、処理が終わってもモジュールを残したままにしておくと、ファイルを再度開くとマクロの警告が出る。セキュリティ的にどうよ?って問題

グラフをアクティブに、っていうのはもしシートに複数グラフがあったら、という問題をクリアできるのでいいと思うんだが、操作者に注意喚起しないとエラーになる。エラー処理してないし。これ以上改変するつもりもないし。(汗
こう考えるとやっぱり2.のモジュールのアドイン化がベストだな。ただのマクロをアプリケーションのレベルに仕上げるのって、本当に大変。惜しげもなくフリーで成果物を公開してくださっている皆様に感謝。