Wordの段落番号は便利なはずなのですけれど、思ったように制御できないために不満を感じている方が、かなりいらっしゃるようです。
段落番号機能を使わず、単なる文字列としての番号を手入力するという方も少なくないでしょう。
「wordvba 段落番号をテキストに」
といった検索キーワードで、このサイトへのアクセスもあります。
Word VBAで段落番号を単なるテキストに変換するには、どのようなコードを書けばいいのかを探していた方によるです。
アクティブ文書の段落番号をテキストに変換するサンプル
以下のSubプロシージャを実行すると、アクティブ文書に存在するすべての段落番号が、単なるテキストに変換されます。
ActiveDocument.ConvertNumbersToText NumberType:=wdNumberParagraph
End Sub
段落番号等を単なるテキストに変換するConvertNumbersToTextメソッドが、いくつかのオブジェクトに用意されています。
その中で、上記のSubプロシージャではDocumentオブジェクトのConvertNumbersToTextメソッドを使って、
アクティブ文書の段落番号をテキストに変換しています。
ConvertNumbersToTextメソッドの引数NumberTypeには、(残念ながらオブジェクトブラウザーから読み取れませんが)WdNumberType列挙に定義されている定数を指定できます。
ここでは段落番号をテキストにするため、定数wdNumberParagraphを指定しています。
選択箇所の段落番号をテキストに変換するサンプル
選択箇所の段落番号のみテキストに変換したい、という場合もありそうです。その場合は以下のようなSubプロシージャです。
Selection.Range.ListFormat.ConvertNumbersToText NumberType:=wdNumberParagraph
End Sub
こちらのSubプロシージャでは、ListFormatオブジェクトに用意されているConvertNumbersToTextメソッドを利用しています。
ただし、RangeオブジェクトにはListFormatプロパティがあるものの、Selectionオブジェクトには見当たりません。
そこで『Excel VBAユーザーのためのWord VBA入門(1)』の「7-4. オブジェクトを返すSelectionの特徴的なプロパティ」でもご紹介しているSelection.Rangeプロパティを使ってRangeオブジェクトを取得してから、Range.ListFormatプロパティで
ListFormatオブジェクトを取得しています。
最終更新日時:2022-08-05 03:18
Home » ワードマクロ・Word VBAの使い方 » Documentオブジェクト » VBAで段落番号をテキストにーConvertNumbersToTextメソッド