« Matlab 棒グラフ | トップページ | 円の内側か外側か »

Matlab FigureをPowerPointに貼り付け

Matlabで実験データを印刷するときに,何百個というグラフを作って,それを印刷したり,何かに貼り付けて残しておきたいときがある.
そんな時用に,PowerPointに貼り付ける関数を作ってみた.

そういう関数は存在しているのかもしれないけれど,自分用に使いやすく.

仕様としては,Figureの数を数えておかないとダメだけど,figureの数さえわかっていれば,表示されているfigureをすべてPowerPointに貼り付けてくれるだけ.(PowerPoint2007でもOK)

ソースは
%------------------------------------------------
% ここから

function func_saveppt2(figure_num, out_file_name, title_text)
% 第一引数:figure_num ← 数字
% 第二引数:出力するファイルネーム
% 第三引数:タイトル名

Power=actxserver('PowerPoint.Application');
set(Power,'Visible',1);

%inspect(Power);
%methodsview(Power);

presen1 = Power.Presentations;
ppt1=invoke(presen1,'Add');
slides=ppt1.Slides;
for k=1:1:figure_num
    slide1=invoke(slides,'Add',k,2);
    hh1 = invoke(slides,'Item',k);
    hs1 = hh1.Shapes;
    figure(k);
    rect2 = [10 100 800 600];
 % Figure Windowの大きさと位置を設定
    set(figure(k),'Position',rect2)
    print('-f','-dmeta')
    hp1 = invoke(hs1,'Paste');
    set(hp1,'Top',90)
    set(hp1,'Left',60)
    text1=hs1.Title.TextFrame.TextRange;
    set(text1,'Text', title_text)
    close
end
pr=presen1.Application.ActivePresentation;
invoke(pr,'saveas',[pwd,'\',out_file_name]);
invoke(Power,'Quit');

% ここまで
%------------------------------------------------

これを「func_saveppt2.m」という名前で保存して,パスの通っているフォルダに入れておくだけ.(作業ディレクトリでもOK)

第一引数のfigure_numはFigureの個数を入れて,第二引数の出力するファイルネームはPowerPointのファイル名,第三引数のタイトル名はPowerPoint上のタイトル名を入れる.

具体的には,
ppt_file_name = 'saveppt.ppt';
ppt_title = 'グラフのタイトル';
func_saveppt2(figure_num, ppt_file_name, ppt_title);

とでもM-Fileの最後にかいておけばいい.

個人的にはとっても重宝.

|

« Matlab 棒グラフ | トップページ | 円の内側か外側か »

PC 覚え書き」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/58355/40380237

この記事へのトラックバック一覧です: Matlab FigureをPowerPointに貼り付け:

« Matlab 棒グラフ | トップページ | 円の内側か外側か »