「ActiveDocument.Characters」
といった検索でアクセスがありました。
このキーワードだけで詳細は不明ですが、「ActiveDocument.Characters」というWord VBAのコードについて調べていた方による検索でしょう。
ActiveDocument.Charactesとは
拙著『いちばんやさしいPowerPoint VBAの教本』でも多用しているオブジェクトブラウザーで確認すると、詳細ペインに「As Document」と表示されるとおりActiveDocumentプロパティの戻り値はDocumentオブジェクトです。
ですから「ActiveDocument.Characters」というコードは、Documentオブジェクトに用意されているCharactersプロパティを利用しているコードです。
Document.Charactersプロパティの戻り値は、オブジェクトブラウザーの詳細ペインに「As Characters」と表示されているとおり、Charactersオブジェクトです。
Document.Charactersプロパティの戻り値であるCharactersオブジェクトには、CountプロパティとItemメソッドが用意されていることから、
コレクションであると推測できます。そして、Charactersコレクションに用意されているItemメソッドは、Rangeオブジェクトを返すことがわかります。
Document.Charactersを確認するSubプロシージャ
Word VBAの最重要なオブジェクトの一つRangeは、どのプロパティで取得したかによってどの範囲を表すかが異なるオブジェクトです。
Document.Charactersプロパティで取得できるCharactersコレクションの、単独のオブジェクトであるRangeが、どのようなRangeなのかは、以下のようなSubプロシージャを実行するとイメージしやすいでしょう。
Dim rng As Range
For Each rng In ActiveDocument.Characters
rng.Select
MsgBox rng.Text
Next
End Sub
Document.Charactersを確認するSubプロシージャの実行
1つ目の段落に、
一行目
2つ目の段落に、
二行目
という文字列を入力した、以下のような文書がアクティブな状態で、
上記のSubプロシージャを実行してみてください。
アクティブな文書に入力されている、
一
行
目
(段落記号)
二
行
目
(段落記号)
が、順番に選択され、メッセージボックスに各文字が表示されます。
このように1つの文字を表すRangeオブジェクトを、単独のオブジェクトとして持つ、Charactersコレクションを返すのが、Document.Charactersプロパティです。アクティブ文書のCharactersコレクションを取得しているのが、「ActiveDocument.Characters」というWord VBAのコードです。
最終更新日時:2022-01-08 05:49
Home » ワードマクロ・Word VBAの使い方 » Documentオブジェクト » ActiveDocument.Charactersとは