hirax.net::Tech-logs::2010-06-22

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;