【Word VBA】表の列幅を揃えるWordマクロ

2017年4月22日

仕事で書類を作りました。最初に文字を入力して表を作成し、最後にレイアウトやスタイルを設定しました。

そして、ページ設定で余白を調整したのです。

[ページレイアウト]タブから[余白]ボタンをクリックすると余白の簡易設定ができます。私はよく、[やや狭い]を選択します。

このときに、事件が起こりました(笑)。

表の幅がまちまちになってかっこわるいのです。

手作業で調整するには、以下のように[表ツール][自動調整]ボタン[文字列の幅に合わせる]を選択すればできます。

これで表の幅がページの幅に合うのですが、書類の中には多くの表があるので、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

-コード
-, , ,