View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from

4.4 | 24 ratings Rate this file 57 Downloads (last 30 days) File Size: 2.99 KB File ID: #3149 Version: 1.0



Suresh Joel (view profile)


17 Mar 2003 (Updated )

Paste figure to Microsoft word automatically using ActiveX.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information

A simple function to copy figure from MATLAB into MS Word automatically. It is a modification of saveppt (a function in File exchange) that save figures to MS Powerpoint.


Saveppt inspired this file.

This file inspired Office Doc Read/Write/Format Ms Office Docs (Xls/Doc/Ppt), Quick Figure, and Write To Word From Matlab.

MATLAB release MATLAB 6.1 (R12.1)
MATLAB Search Path
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (36)
12 Jan 2017 Ursula Dora

09 Jan 2017 Florian Kraus

Hi guys,

i got also the Problem.

"Invoke Error, Dispatch Exception: Source: Microsoft Word Description: Befehl misslungen Help File: wdmain11.chm Help Context ID: 9066"

In my Situation was the Problem the following.
I had a testbench, where all files ( over 1000) needs to get translate into English from German Version.

If i run my code, which was normally german and everything worked, i now got the Problem, when a plot was fixed to a word and the Picture in word was at the point to get labeled ("Abbildung").

The interessenting thing is, when i debugged the Code, the error did not occur or just in some cases.

So the reason was, that the word document Begins with german speech, but at the Point where the error occured i saw that the Document jumps to english speech.

When i clicked away the button "automatical speech detection" the error did not occur since yet.

Maybe that could help you, for me it took more then 1 week to detect this error.

Best regards

Comment only
11 Dec 2016 Jagan Mohan

Any onr could you please help me to convert MATLAB output in text to a word document automatically

Comment only
29 Mar 2016 mandava suryakala

If the figure files already to replace and paste at the same place in word document.
When running a save2word program multiple times for the same figures it keeps on adding the same to .doc

22 Nov 2014 anjana

anjana (view profile)

how can we edit a image in MATlab which is in word doc.

Comment only
07 Nov 2014 John

John (view profile)

Is anyone else having a bunch of issues with this after a recent windows update? I am getting the "Description: Word cannot complete the save due to a file permission error" error MUCH more frequently than I used to.

Any ideas?

Comment only
14 Sep 2014 Shanmukha priya V

Very nice function! Very useful!

07 Aug 2014 can

can (view profile)

It's great tool!
For those who want to save multiple figures, you can create those figures in a loop, and use this function inside the loop for each figure. It supports adding figures one after another.

28 Jun 2014 Gopala Krishna Murthy

Very good

11 Jul 2013 John

John (view profile)

I am having the same issue as Anthony, below, only after updating to Matlab 2013a.

Comment only
17 Apr 2013 Anthony

I tried adding a "for" loop so that multiple figures can be copied into word but it copies over the exiting plot. Any help?

Comment only
23 Mar 2013 gu

gu (view profile)

Wonderful tools!!!

04 Feb 2013 shah72206

Please help with the following "invoke error" when I try to use a full file path to output the word document in an existing directory:

??? Invoke Error, Dispatch Exception:
Source: Microsoft Word
Description: This file could not be found.
Help File: C:\Program Files(x86)\Microsoft Office\Office12\1033\WDMAIN11.CHM
Help Context ID: 604e

Comment only
04 Jan 2013 fabien

fabien (view profile)

The final result is different with matlab 2012.
The word file contain a picture and not a vector format.
Have you create an update?

Comment only
12 Mar 2012 Srinivas

03 Nov 2011 Lokesh

Lokesh (view profile)

Thanks Suresh... Its a very helpful program. It has saved a lot of time for me.

21 Jun 2010 esya esya

It helped me finding way to read text data in the doc file.

Thanks a lot.

Comment only
18 May 2010 Wenxu

Wenxu (view profile)

very good tool,thank you

Comment only
25 Jun 2009 Alex Frid

very handy! thanks!

26 Nov 2008 Cristian Gutierrez Acuna

>> save2word('junk.doc')
??? Invoke Error, Dispatch Exception:
Source: Microsoft Word
Description: This method or property is not available because the Clipboard is empty or not valid.
Help File: C:\Program Files\Microsoft Office\Office12\1033\WDMAIN11.CHM
Help Context ID: 91fd

Error in ==> save2word at 80

Comment only
16 Sep 2008 Anup Khekare

It works perfectly fine for me. I was looking for a way to code this, but this code here solves all the problems for me. Thank you very much. This helps to cut short the save figure and paste figure process.

Thanks Again.

23 Apr 2008 Barbara Robson

If you replace "print -dmeta" with "uimenufcn(gcf,'EditCopyFigure')" you get exactly the image you'd get if you used Edit->Copy->Figure and pasted it manually: I find that this gives superior results for my purposes. For example, using uimenufcn gives me more control over the figure size and axis background color.

18 Apr 2008 Lefteris Kaskavelis

I tried to use this code in MATLAB2007b in WindowsXP and I get the following message.
Invoke Error, Dispatch Exception:
Source: Microsoft Word
Description: This method or property is not available because the Clipboard is empty or not valid.
Help File: C:\Program Files\Microsoft Office\OFFICE11\1033\wdmain11.chm
Help Context ID: 91fd

Error in ==> save2word at 80

It used to work without problems in MATLAB2006b and Windows2000

Any ideas are welcome.

Thanks in advance

17 Apr 2008 Dan Mikulskis

this is really handy. does exactly what i wanted.

03 Apr 2008 Erik Larsen

I only tried this file b/c I ran into a matlab bug where I tried to copy a figure from the Edit->Copy Figure menu into word, but matlab was giving me an error (something about the figure handle not being valid, which was clearly a matlab bug). I spent a long time trying to find a workaround, but nothing worked well.

Suresh' script worked beautifully though, it generated a word file with the figure in there, exactly as it appeared in matlab (had to check 'match figure screen size' in the Edit->Copy Figure Options menu, though).

06 Dec 2007 Licente Ro

I noticed in case one wants to automize this process and save multiple figures one after the other, there is a need to give some time to WORD to properly close both the file and

I intorduced some delay in the loop.
Initially I used 1 sec, but this is too low for my computer. With 2 sec works better.

Thanks again for this breaktrough info.

05 Nov 2007 Ma Liang

I also have some error as below:
??? Invoke Error, Dispatch Exception:
Source: Microsoft Word
Description: ????????????
Help File: C:\Program Files\Microsoft Office\OFFICE11\2052\wdmain11.chm
Help Context ID: 62e2

Error in ==> WriteToWordFromMatlab>WordText at 198
actx_word_p.Selection.Style = style_p;

Error in ==> WriteToWordFromMatlab at 29
WordText(ActXWord,TextString,Style,[0,2]);%two enters after text

22 Jun 2007 Sylvia Kohn-Rich

The error:
?? Invoke Error, Dispatch Exception:
Source: Microsoft Word
Description: This method or property is not available because the
Clipboard is empty or not valid.
Help File: C:\Program Files\Microsoft
Help Context ID: 91fd

can be avoided by using the following version:

function save2word(filespec,prnopt)

% SAVE2WORD saves plots to Microsoft Word.
% function SAVE2WORD(filespec,prnopt) saves the current Matlab figure
% window or Simulink model window to a Word file designated by
% filespec. If filespec is omitted, the user is prompted to enter
% one via UIPUTFILE. If the path is omitted from filespec, the
% Word file is created in the current Matlab working directory.
% Optional input argument prnopt is used to specify additional save
% options:
% -fHandle Handle of figure window to save
% -sName Name of Simulink model window to save
% Examples:
% >> saveppt
% Prompts user for valid filename and saves current figure
% >> save2word('junk.doc')
% Saves current figure to MS Word file called junk.doc
% >> save2word('junk.doc','-f3')
% Saves figure #3 to MS Word file called junk.doc
% >> save2word('models.doc','-sMainBlock')
% Saves Simulink model named "MainBlock" to file called models.doc
% The command-line method of invoking SAVEPPT will also work:
% >> save2word models.doc -sMainBlock
% If the figure has to be pasted as a smaller size bitmap, go to
% File->preferences->Figure Copy Template->Copy Options and
% check "Match Figure Screen Size" checkbox.
% Then make the figure small before by setting the position
% of the figure to a smaller size using
% set(gca,'Position',[xpos,ypos,width,height])
% Check also saveppt in Mathworks fileexchange

%Suresh E Joel, Mar 6,2003
%Virginia Commonwealth University
%Modification of 'saveppt' in Mathworks File Exchange
%and valuable suggestions by Mark W. Brown,

% Establish valid file name:
if nargin<1 | isempty(filespec);
[fname, fpath] = uiputfile('*.doc');
if fpath == 0; return; end
filespec = fullfile(fpath,fname);
[fpath,fname,fext] = fileparts(filespec);
if isempty(fpath); fpath = pwd; end
if isempty(fext); fext = '.doc'; end
filespec = fullfile(fpath,[fname,fext]);

% Start an ActiveX session with PowerPoint:
word = actxserver('Word.Application');
%word.Visible = 1;

if ~exist(filespec,'file');
% Create new presentation:
op = invoke(word.Documents,'Add');
% Open existing presentation:
op = invoke(word.Documents,'Open',filespec);

% Find end of document and make it the insertion point:
end_of_doc = get(word.activedocument.content,'end');

% Capture current figure/model into clipboard:
if nargin<2
print -dmeta

% Paste the contents of the Clipboard:


if ~exist(filespec,'file')
% Save file as new:
% Save existing file:

% Close the presentation window:

% Quit MS Word

% Close PowerPoint and terminate ActiveX:


18 May 2006 Lee Barnea

nice useful tool. a bit problematic when the destination file is already opened

25 Nov 2004 Jonathan Archer

Change the words 'PowerPoint' in the file to 'Word', perhaps.

Comment only
24 Nov 2004 I. Kalatzis


10 Nov 2004 Fabien Lahoche

Very nice tool. Thks

05 May 2004 Gang Huang


19 Feb 2004 Kasper Paasch

Wonderfull tool. Just what I needed. Thanks.

03 Apr 2003 Matthias Wetzel

Fine, wonderful tool.
Furthermore I'm searching for "own" report generator. This is one step to get it.

21 Mar 2003 vishnu natesan

31 Mar 2016 1.0

License update

Contact us