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の最後にかいておけばいい.
個人的にはとっても重宝.
| 固定リンク
「PC 覚え書き」カテゴリの記事
- エクセルで○○の位を抜き出す.(2008.10.28)
- mewから送信できなくなる.(2008.10.27)
- mew(2008.10.27)
- emacs タブの挿入(2008.07.18)
- MacBook(2008.07.06)
コメント