仕事で書類を作りました。最初に文字を入力して表を作成し、最後にレイアウトやスタイルを設定しました。
そして、ページ設定で余白を調整したのです。
[ページレイアウト]タブから[余白]ボタンをクリックすると余白の簡易設定ができます。私はよく、[やや狭い]を選択します。
このときに、事件が起こりました(笑)。
表の幅がまちまちになってかっこわるいのです。
手作業で調整するには、以下のように[表ツール]の[自動調整]ボタンの[文字列の幅に合わせる]を選択すればできます。
これで表の幅がページの幅に合うのですが、書類の中には多くの表があるので、1つ1つ手作業で幅調整をするのは時間がかかります。
そこでマクロを作ってみました。
<目次>
このマクロでできること
文書中の表の幅をページ幅に自動調整します。
(マクロ実行前)
(マクロ実行後)
マクロの解説
よくあるFor Each ... Next ステートメントです。1つ1つの表を処理する場合には必須の書き方です。
AutoFitBehavior メソッドを用います。
列幅を揃える方法は、冒頭で説明をした[自動調整]ボタンの項目の数と同じで3つです。
VBEでマクロを書いている時に項目を忘れてしまった場合、候補を表示させる方法があります。
AutoFitBehavior と入力したあとに、ショートカットキーの [Ctrl] + [Space] を押します。時々、この操作で候補を表示できます(メソッドの場合、パラメーターが1つだけで必須になっている場合に表示できるみたい。しっかり検証してませんが。)。
今回は、[文字列の幅に合わせる]に対応する wdAutoFitWindow を選択しました。
今回は、[ウィンドウサイズに合わせる]に対応する wdAutoFitWindow を選択しました。[文字列の幅に合わせる]の場合は、wdAutoFitContent です。(2018年8月13日に修正)
マクロ
Sub 表の幅を揃える() Dim myTable As Table For Each myTable In ActiveDocument.Tables myTable.AutoFitBehavior wdAutoFitWindow Next End Sub