title: Excel VBA Application.Speech.Speak method: reading numbers as thousands
body: <p>(Using Excel 2013)</p>
  
  <p>With <code>Speak Cells on Enter</code> toggled on in a workbook, the behaviour of the text-to-speech seems to be this:</p>
  
  <p>With numbers formatted as General, when you input 1245 it will read the cell as "Twelve Forty-Five". If you input 1,245 it will read it as "One Thousand Two Hundred Forty-Five" AND change the Cell Format to Number with <code>Use 1000 Separator (,)</code> ticked. </p>
  
  <p><em>(If you format the cell as Number AND clear the <code>Use 1000 Separator (,)</code> tick box, <code>Speak Cells on Enter</code> reads back "Twelve Forty-Five. If <code>Decimal places</code> is 1 or greater in the Format Cells dialogue, <code>Speak Cells on Enter</code> reads it as "One Thousand Two Hundred Forty-Five Point Zero" (for one decimal place, for instance.)</em></p>
  
  <p>However, if you use <code>Application.Speech.Speak Range("A1")</code> (with 1,245 entered into <code>A1</code>) it will read back "Twelve Forty-Five" regardless of the fact that it's got a comma and is in fact formatted as a number.</p>
  
  <p>Once you get to 5 digits both <code>Speak Cells on Enter</code> and <code>Application.Speech.Speak Range("A1")</code> read the value in thousands (i.e. "Ten Thousand) regardless of whether or not the cell is General or Number.</p>
  
  <p>Does anyone know any way to make Application.Speech.Speak read numbers less than 10,000 as thousands easily, or would you need to do a workaround parsing the numbers into words and then reading out that result?</p>
  
  <p>Thanks in advance.</p>