【Word VBA】箇条書き、段落番号、ListNumフィールドの番号をテキストへ変換するWordマクロ

2013年1月30日

Wordのお役立ち機能の1つとして、段落番号やフィールドによる自動の数値入力がありますね。

ただ、翻訳時にこの段落番号やフィールドの文字が操作にしくくて、テキストとして変換する場合があります。

翻訳に限らず、Wordをお使いの方であれば必要性を感じたことがあるでしょう。

今回のマクロは、このような自動で入力されている文字列をテキストに変換するものです。

記事自体は長いですが、コードは1行で簡単なものです。ご覧ください。

このマクロでできること

自動で入力されている文字列を編集可能なテキストに変換します。

2種類の文字列を対象にして処理をします。

「箇条書き・段落番号」と「ListNumフィールド」です。

「箇条書き・段落番号」はいずれも段落に設定されています。

オートフォーマットの項目に、オン・オフの切り替えがありますが、デフォルトではオンになっています。

数字を入力して改行を押すと、次の段落の先頭に続きの数字が自動で入力される機能です。

場合によっては便利なのですが、おせっかい機能としても名高いですね。

「ListNumフィールド」は、フィールドとして数字を入力していく方法です。

まずはおさらい

例えば、このような文書があります。

フィールド

数字部分にカーソルをあてると灰色に文字列が選択されますよね。

先頭の5段落は、段落番号が設定されています。

フィールド

中央の5段落の先頭には、ListNumフィールドが設定されています。

カーソルを当てると、1つの数字だけが灰色になります。

フィールド

[Alt] + [F9] でフィールドコードを見ることができます。LISTNUM と記載されています。

フィールド

最後の5段落には「箇条書き」が設定されています。

フィールド

それぞれの細かな入力方法は説明しませんが、ご興味がある方は、お調べください。

マクロの解説

「箇条書き・段落番号」と「ListNumフィールド」とでは、それぞれ入力方法は異なるのですが、マクロでテキスト化するときには1つのコードで対処できます。(マクロ1

また、「箇条書き・段落番号」だけを対象にすることもできます。(マクロ2

「ListNumフィールド」だけを対象にすることもできます。(マクロ3

ちなみに、「ListNumフィールド」の場合には、以前紹介した「文書中のフィールドコードをテキストにする 」マクロでもテキスト化できます。

ちなみに、いずれのマクロも、本文だけではなく、ヘッダー、フッター、テキストボックス内など、すべてのストーリー(ストーリー種別とは )に対して処理できます。

マクロ1


Sub すべての数字をテキスト化()
 ActiveDocument.ConvertNumbersToText wdNumberAllNumbers
End Sub

または、以下のようにオプションの値を省略することもできます。


Sub すべての数字をテキスト化()
 ActiveDocument.ConvertNumbersToText
End Sub

マクロ2


Sub 箇条書きや段落番号の数字をテキスト化()
 ActiveDocument.ConvertNumbersToText wdNumberParagraph
End Sub

マクロ3


Sub ListNumフィールドの数字をテキスト化()
 ActiveDocument.ConvertNumbersToText wdNumberListNum
End Sub

 

今まで、どのようにして数字を解除すればいいのかわからず、文書全体をテキストエディタにコピペして書式を解除されていた方もいらっしゃると思います。

ぜひご活用ください。

関連記事

文書中のフィールドコードをテキストにする

ストーリー種別とは

-コード
-, , ,