Skip to content

Free Speech:

Here is a (Macro) below that will produce a function giving you the ability to hear your text being read to you in Word 2000.  Should work in 2003 -> 2007 -> and 2010, and I can’t see any reason why it won’t!

** Editor’s note here, 2018. I still can’t get this thing to run with the Office 2003 suite of programs. Worked fine with 2000, but the Macro adamantly refuses to do as it’s told with the newer suites.
– And as such: I have been reduced to using ClaroRead instead, but if you do happen to read this, and you do happen to get the ruddy thing to work, then can you please eMail me and tell me how you did it.

Original article from 2011 continues.

NOTE 1. This article requires you to read, and implement the code in full. It’s all here, don’t ask any stupid questions. I won’t answer them.

NOTE 2. It’s *NOT* my work and is a direct pull from, .. text to speech.htm

Which was in itself, was also a direct pull from the original article, .. 

That then spawned the function below. It was originally written by Matthew Heikkila, and all I’ve done to improve it, (cough cough!), Is just get the Macro to now start from the Cursor, instead of the beginning of the document, which to my mind was very silly indeed.

[ General Observations: Do Not Overlook.  ]

System Requirements, ..

XP, and Service Pack 3 is installed.

Microsoft Office 2000 with Word and Excel must also be installed.

** Sub Note from the future: the above software spec was required when this article was written in 2011, but even the latest Win 10 release has issues with some admin aspects of the Marco running.

If you run your system as a  ‘Guest’ and ‘Admin’, then read NOTE 3 below, before going any further.

[ General Observations: Do Not Overlook. ]

Begin  -\_(”)_/-  Start Word 2000.

From a blank page with (Word) running, press – ‘Alt-F11’ – [this opens the Microsoft visual basic window].

From the top Menu Bar -> Tools  [[Drop down menu]] -> [Select] Reference.

This opens up a pop up box, you then scroll down, and find and select, ..

[x] Microsoft Speech Object Library.

Then click on it: press OK.

On the left hand side of the screen are two side windows. Select the top one called Project, – Project, the bottom one is called ‘Properties Module1’ – and is for reference only.

Follow the objects listed.

Project (Document 1) -> Modules -> [ ‘right-click’ -> Insert ‘Module’ ]

Opens new window in the main pane, paste in the text code block shown as below.

[cut start] —–  [don’t include this part]

Dim speech As SpVoice 'Don't overlook this line!
Sub SpeakText()
' Based on a macro by Mathew Heikkila
' My version reads from the Screen Cursor:

On Error Resume Next
Set speech = New SpVoice
If Len(Selection.Text) > 1 Then 'speak selection
speech.Speak Selection.Text, _
SVSFlagsAsync + SVSFPurgeBeforeSpeak
Else 'speak whole document
speech.Speak ActiveDocument.Range(ActiveDocument.Bookmarks("startOfSel").Start, _
ActiveDocument.Characters.Count).Text, _
SVSFlagsAsync + SVSFPurgeBeforeSpeak
End If
Loop Until speech.WaitUntilDone(10)
Set speech = Nothing
End Sub

Sub StopSpeaking()
'Based on a macro by Mathew Heikkila
'used to interrupt any running speech to text
On Error Resume Next
speech.Speak vbNullString, SVSFPurgeBeforeSpeak
Set speech = Nothing
End Sub

[end cut]-----[don't include this part]

Simply close the window, — you should now have a something called ‘Module1’ under ‘Modules’.

That’s it your Macro is built.

Next you need to (Assign) it to one of your key strokes. Now, its been suggested to me that you create a Macro, then assign it to a Menu-Bar? – But I have ask, why the heck would you want to do that? – Assign it to a Key-Board combination instead for better productively.

From Top Menu in Word.

Select Tools. Drop down menu to ->Customise->(Shown Below.)

Select Keyboard. (Shown), scroll down to Macros:

Assign Keyboard ‘Key strokes’.

Select the box labelled, ..

‘Press New short cut key’,

And simply assign your short cut keys for activating the Macro. I’ve used ‘CTRL-SPACEBAR’, which means that I simply pressed that combination in the box.

Once the keystrokes are in the Box, the [[Assign]] button above will be enabled. Click it and move on to the assigning your ‘Stop Speaking Macro’ Keyboard combination.

For that I used CTRL-ALT-SPACEBAR assigning, but it’s your choice here.

NOTE 3: ADMIN Errors with XP.

Now, if you run your system as ‘Admin’ and ‘Guest User’ then you’ll have a few problems in assigning and implementing changes in Word. As you run Word from a guest account, Word creates a file on each run, and this file is basic. It also can’t be changed with your privileges that the Guest Account allocates. So it you try to assign Macros to keystrokes or MenuBar then the changes are ignored, but it says nothing, and you’ll go quietly daft as you can’t see why your simply Macro assignments are ignored.

Here’s a work round, ..

Log in as Admin. Open Word, create your ‘Speak functions’ as described above. Create your ‘Macro keyboard assignments’ as described above. Test that your Key-Strokes Work. Do they? … And, you can hear the voice reading your Text? … Then Close Word:

Still logged in as Admin. Locate the directory/folder:-

C:Documents and Settings[Admin]Application DataMicrosoftTemplates

Copy the file there, called, select it, and either ‘Right Click’ -> Copy: Or be professional, and press CTRL-C:

Locate the directory/folder.

C:Documents and Settings[Guest User]Application DataMicrosoftTemplates

Rename the file there called to something like Normal-dot.old – then (Right Click) your Mouse and select {Paste}, Or be professional, and press CTRL-V. These actions will ‘Paste’ the file called ‘’ from the ‘Admin directory’ to this ‘directory’.

Log out, and off as Admin. Now Log back in as as your Guest User. Open Word and test your key-strokes. Note that even thought you would think that Word ‘Admin’ and Word ‘User’ would be the same, they are not! – You have to enter the Visual Basic functions twice, but the Macro Assignments only once? Go figure!

NOTE 4: Sigh! – Come on People!

I shouldn’t need to explain this, but ‘Admin Account’ is the Admin ‘log in/on’ name you use when you log in to your XP. So, if your Admin name is ‘FRED’; then the path to the Fred Admin account would be.

C:Documents and Settings(Fred)Application DataMicrosoftTemplates

– And so if follows, if you log in as your Guest Account as ‘Joe’ then the path to the Joe Guest Account is.

C:Documents and Settings(Joe)Application DataMicrosoftTemplates

RTFM – Or don’t even attempt this!

** Authors note in 2018, all of the above is now blown out of the water with the poxy permissions [[file – user editor]] found in Windows 8, (spit!) – 8.1 (double spit), and finally Win 10, (run out of spittle), and am now merely salivating with pure frustration because I haven’t been given permission to proceed, and nor do I own my own file!

A Review, ..

This macro uses the EXCEL speech package. It relies on the installed voice of SAM. It’s there automatically. It is shit! (sorry, but it’s awful). The Macro, once activated, speaks from ‘the Cursor’ in Works 2000 and is classed as (Free Speech.)


Thanks for reading, Jessica: Praise be the ORI.


This is a local popup, .. it’s been placed here to advertise the fact that you can have your own **free** local WordPress environment, and at the click of a button.

I’m putting my own reputation on the line to push this local program, and what I can say on the subject: is quite frankly it’s brilliant. The program itself will provide you with a very simple WP environment to go local: simple but powerful.

Setting it up and running it is a breeze, but like everything else software wise out there, you do need to read the docs: just a little bit to get it running.

Did I mention that it’s free!

Download and install it here.

Try it, you won’t be disappointed.