2010-06-21[n年前へ]
■RubyでExcelの複数のグラフをグルグル回すには?
RubyでExcelの複数のグラフをグルグル回したければ、たとえばこんなコードを書くことになります。適当にExcelでグラフを作りさえすれば、それらのグラフを同じように一括してグルグル回すことができます。ここに挙げた"Rotation"と、あとは、"Elevation"を操作してやりさえすれば、色々な眺め方ができると思います。
require 'win32ole' excel=WIN32OLE.connect("Excel.Application") 30.step(180,5) do |rot| excel.ActiveSheet.ChartObjects.each do |chartObject| chartObject.Chart.Rotation=rot end sleep(0.05) end
■エクセルのグラフをマウスでグリグリ動かしながら赤青メガネで飛び出す立体動画で眺めよう!?
マイクロソフトのエクセルでチャート(グラフ)を作り、そのチャートをコピーして同じチャートをふたつ横に並べさえすれば、それを外部からマウス操作で自由自在に動かしつつ・アナグリフ立体動画として眺めることができるソフトを作ってみました。その動作のようすが、下のようになります。三次元グラフをマウスでグリグリ動かしつつ(しかも複数グラフを同時に)、さらに、赤青メガネ(アナグリフ)立体画像として眺めることができてきるのがわかると思います。
この上の動画では、画面上半分にエクセルの画面があり、左下に作成したソフトが表示している(赤青メガネ用の)立体画面があります。赤青メガネ用立体表示祖をしている画面の部分でマウス操作をすれば、立体グラフを自由自在に動かすことができる、というわけです。
エクセルでは、残念ながら、あまり三次元的に意味のあるチャートを作ることはできません。たとえば、下のグラフはExcel 2010で作った三次元チャートですが、今一つ立体チャートのワクワク感を楽しむことができるようなものではないように思います。
しかし、どんな道具も使う人次第ということもあるわけですから、うまくエクセルを使いこなせばきっと面白い立体的なチャートを作り出すことができるように思います。面白く・新鮮な立体グラフを、簡易な立体ディスプレイであるアナグリフ表示でリアルタイムに色々眺めることができれば、きっと面白いのではないでしょうか。
今日作ったソフトは、ここに置いておきます。エクセルのグラフを外部から操作するソースコードのポイントは、近く、適当にまとめて公開しておきます。
2010-06-22[n年前へ]
■C++で(開いている)エクセルのチャートをグリグリ動かしてみよう!?
昨日は、RubyでWin32Oleを使いMicrosoft Excelのチャートを操作するコードを書いたので、今日はC++(Borland C++ Builder)でExcelの三次元チャートをグリグリ動かすためのコードを書いたときのエッセンスをここに書き写してみることにします。こういったコードは書き方を一回眺めれば、あとは比較的簡単に書くことができたりするものですから、ここにメモしておくことにします。下の例は、すでに開かれているエクセルのワークシート上にあるチャートに対して処理をする場合のものになります。
#include <Comobj.hpp> Varient excel=GetActiveOleObject( "Excel.Application"); Varient sheet=excel.OlePropertyGet( "ActiveSheet"); Varient chart=sheet.OlePropertyGet( "ChartObjects",1).OlePropertyGet( "Chart"); int rotation=chart.OlePropertyGet( "Rotation"); int elevation=chart.OlePropertyGet( "Elevation"); chart.OlePropertySet( "Rotation",rotation) chart.OlePropertySet( "Elevation",elevation); excel=Unassigned;
■エクセルで飛び出す"立体"粒子群アニメーションを作ってみよう!?
21世紀に入った頃から、「表計算ソフトを使って、色んなシミュレーションをしてみる」ということをしています。いつも、夏になるとそんなことをしています。だから、暑い夏が来ると、いつもエクセルの勉強を”少しだけ”します。そして、いつもエクセルを憎み、一年くらいは触りたくなくなります。…けれど、憎みと愛は裏表、というわけで、結局エクセルに触り続ける毎日です。
さて、そんな年中行事とは関係なく、昨日は「エクセルのグラフをマウスでグリグリ動かしながら赤青メガネで飛び出す立体動画で眺めよう!?」ということをしてみました。そこで感じたのは、エクセルは三次元的に眺める価値のあるグラフはなかなか作ることができない、ということでした。
しかし、そんな風に限界を感じるときは、そこで感じる限界は多くの場合、自分の限界そのものである、ということもよく感じます。…というわけで、今日は、エクセルで粒子挙動シミュレーションを行い、その結果をアナグリフ立体動画として表示してみることにしました。
そこで、まずは、(反復計算を用いて)簡単な「粒子挙動シミュレーション」をエクセルで行うことができるようにしました。そして、その上で、その粒子群の動きの計算結果を位置・大きさを(適当に)透視変換をした上で、散布図(バブルチャート)として、アナグリフ立体表示できるようにしてみたのです。そうすれば、左右視差による遠近感に加え、バブルの大きさが遠近に合わせた大きさで表示されることで、自然に立体感をもって眺めることができるわけです。
その結果を、先日、作ったアナグリフ表示アプリケーションでアナグリフ立体動画にしてみた結果が、下に張り付けた動画になります。ムービーキャプチャーはいつものようにカクカクしてしまっていますが、もちろん、本当は、とても滑らかに動いています。というわけで、今日は「エクセルで飛び出す"立体"粒子群アニメーション」を作ってみました。
2010-06-29[n年前へ]
■エクセルのグラフを綺麗なスペクトルチャートにするマクロ
エクセルのグラフを綺麗なスペクトルチャートにするマクロの「CCC」
エクセル標準のグラフのうち、等高線グラフなどのグラフ要素の塗りつぶしの色を 青から赤へと連続的に変化した色に変えることにより、グラフを見やすくすることができます。というわけで、下のチャートは(Excel 2010になっても未だ今ひとつ綺麗に色を仕上げることができないのです)Excel 2010の等高面グラフを本マクロを使って、綺麗なスペクトルチャートにしてみた例です。エクセルのチャートを、思いきり綺麗にカスタマイズできて、自由自在に眺めることができるソフトウェアを、明日にでも作ってみようと思います。近く、夏恒例のスプレッドシートを使ったシミュレーション実習を行うので、ありとあらゆるエクセル技を、これから少しまとめて行こうと思います(もしも、ひと味もふた味も変わった、けれどとても楽しく華麗なエクセル科学本に興味のある編集者の方がいらっしゃいましたら、ご連絡頂ければ幸いです)。