Thanks for responding Paul.
If that's how Word 2010 is designed then I would argue Microsoft got it wrong. Here is my argument.
It my example of the cursor positioned between "b" and "c":
selection.Start = 2
selection.End = 2
selection.Type = 1 (wdSelectionIP)
Therefore, Word has confirmed there is no character selected but responds with:
selection.Text = "c"
Now take the case where the character "c" is selected:
selection.Start = 2
selection.End = 3
selection.Type = 2 (wdSelectionNormal)
In this case Word has confirmed there is a character selected and responds with:
selection.Text = "c"
I argue Word can't have it both ways. It's illogical to return "c" if Start=2 and End=2 and at the same time return "c" if Start=2 and End=3. If Start=2 and End=2 then "selection.Text" should return an empty string.
Here is an example of Word correctly returning an empty string when the "Range" method is added to the above operations. Using my initial example of the cursor positioned between "b" and "c":
selection.Range.Start = 2
selection.Range.End = 2
selection.Range.Text = ""
Why would Microsoft design "selection.Text" and "selection.Range.Text" to return different results when no text is selected? Note that this discrepancy only occurs if no text is selected in the document. If text is selected then "selection.Text" and "selection.Range.Text"
return the same result.
I have to conclude that "selection.Text" returning a character when no characters are selected is a design flaw.
Thank you for your patience.