2009-09-11[n年前へ]
■Ruby Win32GuiTest のアップデートをしました
Ruby版 Win32GuiTest クラス、つまり、WindowsのGUI操作など(その他にもMicrosoft Officeを利用したOCR機能なども実装していたりしますが…)をRubyで行うことができるWin32GuiTest (win32GuiTest.rb)の修正作業を少しました。
修正内容は、コールバック関数を使う部分において「きちんと後片付けする(DL.remove_callbackを呼ぶ)ようにした」という点です。FindWindow▽○×といった辺りの関数を直した、ということになります。修正前のものを使うと、indWindow▽○×をし続けた場合、DL.callの回数上限に引っ掛かりエラーが発生しましたが、その不具合が今回の修正でなくなります。
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
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;