SentencesコレクションとCharactersコレクション(Word)
SentencesコレクションとCharactersコレクション
Sentences
コレクションとCharacters
コレクションって、ちょっと変わっているよな、というだけの話。
Sentencesコレクションの要素はSentenceオブジェクトに非ず
たとえば、コード・ウインドウ上で、
Dim targetSentence As Sent
まで打ち込んだときに表示されるヒントは、
この通り。
つまり、Sentence
型のオブジェクトはない。
では、Sentences
コレクションの要素は何型なのか。
イミディエイト・ウインドウに、
?TypeName(ActiveDocument.Sentences(1))
と打ち込んで、[Enter]を激しく殴打。
「Range
」が返った。つまり、Sentences
コレクションの要素は、Range
オブジェクトなのである。
Charactersオブジェクトの要素はCharacterオブジェクトに非ず
同じく、コード・ウインドウ上で、
Dim targetCharacter As Char
まで打ち込んだときに表示されるヒントは、
この通り。
つまり、Character
型のオブジェクトはない。
では、Characters
コレクションの要素は何型なのか。
同じくイミディエイト・ウインドウに、
?TypeName(ActiveDocument.Characters(1))
と打ち込んで、[Enter]をそっと押し込む。
「Range
」が返った。つまり、Characters
コレクションの要素もまた、Range
オブジェクトなのである。
おわりに
だから何やねん、と言われても困るのだが、イマイチ分かりにくいWordVBAのオブジェクトモデルが、少しづつ分かってくるのではないか、という気がしてきた。
Range
オブジェクトの概念が、Excelと違いすぎる(というか、ExcelのRange
オブジェクトが独特すぎるのかな?)のが、分かりにくさの原因なのかも知れない。
追記
ちなみに、Words
コレクションの要素もWord
オブジェクトではなく、Range
オブジェクトです。