Macro for Text to Speech in Excel

Excel can read cells aloud, which is a quick way to check figures you’ve typed from a paper report. These VBA macros read a selection, read each cell as you type, or speak any message.

Works inExcel 2010 and later, Windows and Mac
UndoNot possible. Save a copy first
Save asMacro-Enabled Workbook (.xlsm)

New to macros? See how to use the macros on this site: copy the code, paste it into a module with Alt + F11, and run it with Alt + F8.

Read the selected cells aloud

Sub SpeakSelection()
    Dim c As Range
    For Each c In Selection
        If c.Text <> "" Then Application.Speech.Speak c.Text
    Next c
End Sub

c.Text reads values the way they’re displayed, so ₹1,250.00 is read as formatted.

Read each cell as you press Enter

Sub SpeakOnEnterOn()
    Application.Speech.SpeakCellOnEnter = True
End Sub

Sub SpeakOnEnterOff()
    Application.Speech.SpeakCellOnEnter = False
End Sub

Turn it on, then type your entries: Excel reads each one back as you press Enter.

Speak a message

Sub SayDone()
    Application.Speech.Speak "Your report is ready."
End Sub

Add this line to the end of any long-running macro so it tells you when it’s finished.

Without a macro

  1. Go to File → Options → Quick Access Toolbar, choose All Commands.
  2. Add Speak Cells and Speak Cells on Enter, then click OK.
  3. Select cells and click Speak Cells.

Things to know

  • Text to speech works in Excel for Windows only.
  • It uses the voice set in Windows’ Settings → Time & Language → Speech.
  • Long selections take a while to read. Press Esc to stop.

Related macros