Loriは、段落が複数の行に「こぼれる」かどうかを判断する簡単な方法を求めました。 Loriがラベルをマージしているときに、行(段落)が重複してラベルの次の行に折り返される場合、その行が1行だけを占めるように、テキストのポイントサイズを縮小したかったようです。

行の折り返しは、Wordのリアルタイム(および印刷時間)機能です。 Wordは内部計算を継続的に実行して、画面に何を表示するか、または何を紙に印刷するかを決定します。テキストがある行から別の行に折り返される場合、実際には折り返しのポイントをマークするものがないため(他のワードプロセッサにあるように)、実際に検索したり見つけたりするものはありません。さらに、Wordの検索機能には、検索して検索したものが何行に広がっているかを示すオプション(特別またはその他)がありません。

長い一連の検索と置換操作を実行して、「ファッジ」し、長すぎる行を見つけようとする可能性があります。たとえば、次の一般的な手順に従うことができます:

。マージされたドキュメント内のすべてのスペースを、[s]などの標準的な文字の組み合わせに置き換えます。

。マージされたドキュメント内のすべてのダッシュを、[d]などの標準的な文字の組み合わせに置き換えます。

。現在、ドキュメント内のすべての段落は、1つのまとめられた単語で構成されています。

。ハイフネーションツールを実行して、ドキュメントを手動でハイフネーションします。

。ハイフンでつなぐ必要のある行がWordで見つかると、その行のポイントサイズを小さくすることができます。

。置換をやり直し、[s]と[d]を通常のスペースとダッシュに戻します。

これは少し複雑に聞こえるかもしれませんが、そうです。ただし、マクロの作成に取り掛かる場合を除いて、かなりうまく機能します。 (信じられないかもしれませんが、マクロを頻繁に使用しない場合でも、この特定のマクロは、上記の手順を何度も繰り返すよりもはるかに簡単です。)

マクロを組み合わせる方法を決定しようとすると、VBAで悲しい発見が待っています。ベテランのWordユーザーは、Wordでワードカウント機能を使用すると、プログラムがドキュメントの行数を表示することを覚えています。これは、VBAを使用して選択範囲の行数を決定できることを意味します。残念ながら、VBAのReadabilityStatisticsプロパティは、行数の統計を返しません。つまり、[ワードカウント]ダイアログボックスに表示される統計は、必要に応じて内部的に計算されます。

唯一の明らかな解決策は、選択範囲の最初の文字の行番号を返すwdFirstCharacterLineNumberのInformationプロパティに依存することです。残念ながら、VBAにはwdLastCharacterLineNumberが指定されていないため、マクロは段落の最初の文字を選択し、それを段落の最後の文字の選択と比較して、同じ2つの行番号が返されるかどうかを確認する必要があります。そうでない場合は、段落のポイントサイズを縮小して、別の計算を行うことができます。

次のVBAマクロであるParaforceOneLineは、まさにこのプロセスを実行します。ドキュメント内の各段落を調べ、特定の段落が1行にまたがる場合、その特定の段落のポイントサイズは、1行に収まるまで縮小されます。

Sub ParaForceOneLine()

Dim objPara As Paragraph     Const ChangeSize = 0.5

For Each objPara In ActiveDocument.Paragraphs         With objPara.Range             While .Information(wdFirstCharacterLineNumber) <> _               .Characters(Len(.Text)).Information(wdFirstCharacterLineNumber)

.Font.Size = .Font.Size — ChangeSize             Wend         End With     Next objPara End Sub

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1415)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ: