あなたは、ちょうどいいテーブルをいくつか含めて、ページのデザインに長く懸命に取り組んできました。次に、テーブルの1つにもう少しテキストを追加する必要があります。その結果、セル内のテキストが折り返され、他のすべてが少し押し下げられます。これで、デザイン全体が破棄されます。セル内のテキストのサイズを自動的に調整して、折り返しやプッシュが発生しないようにする方法を望んでいます。

Word 2000、Word 2002、またはWord 2003を使用している場合は、このトリックを実行できる組み込みオプションがあります。次の手順に従ってください:

。フォーマットする1つまたは複数のセルを選択します。

。 [テーブル]メニューから[テーブルのプロパティ]を選択します。 [テーブルのプロパティ]ダイアログボックスが表示されます。

。必要に応じて、[セル]タブを選択します。 (図1を参照)

。 [オプション]ボタンをクリックします。 Wordは[セルオプション]ダイアログボックスを表示します。 (図2を参照)

。 [テキストを合わせる]チェックボックスがオンになっていることを確認します。

。 [OK]をクリックして、[セルオプション]ダイアログボックスを閉じます。

。 [OK]をクリックして、[テーブルのプロパティ]ダイアログボックスを閉じます。

Wordが行うことは、すべてが収まるようにテキストの見かけのサイズを小さくすることです。 Wordは、テキストを垂直方向に調整せずに、水平方向に「スクラッチ」(高度な専門用語)することでテキストの幅を狭めます。

Word 97を使用している場合、タスクを実行するための固有の方法はありません。 Wordには、さまざまな文字の幅を決定するためにチェックできるプロパティはありません。各文字のサイズは異なり、他の属性もあります。ただし、テキスト文字列の幅をポイントまたはインチで表​​示することで役立つマクロを作成することはできます。たとえば、次のVBAマクロは、文字列を入力できるように入力ボックスを表示し、フォントとポイントサイズを指定できるように[フォント]ダイアログボックスを表示し、結果の文字列の幅を表示します。

Sub GetStringLength()

Dim sngInitPos As Single     Dim sngEndPos As Single     Dim strText As String     Dim sngLength As Single

strText = InputBox("Enter the string whose length you want to determine")

Documents.Add     Dialogs(wdDialogFormatFont).Show

sngInitPos = Selection.Information(wdHorizontalPositionRelativeToPage)

Selection.InsertAfter strText     Selection.EndOf     sngEndPos = Selection.Information(wdHorizontalPositionRelativeToPage)

sngLength = sngEndPos — sngInitPos

MsgBox "Your string has a length of " & sngLength & _         " points, or " & PointsToInches(sngLength) & " inches."

ActiveDocument.Close savechanges:=False End Sub

もちろん、このマクロの唯一の問題は、「自動」ではないことです。たとえば、テキスト文字列のサイズをセル内に収まる最大サイズに調整することはありません。長期的には、ニーズに合った適切なサイズが見つかるまで、セル内の情報についてさまざまなフォントサイズを試してみる方が簡単な場合があります。

注:

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

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

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