Wordの表で、左端と右端の列の幅を同じように増減させようとすると、手作業ではなかなかに面倒です。
私自身が、上図の「左端の列」「右端の列」と入力されているセルの列幅を、同じように増減させたかったのですが。
それに対処するためのWordマクロを作りました。
列が3つ存在する表で、表全体の幅は変更せず、左端と右端の列の幅を同じ値だけ増減させるマクロです。
三列の表で左端と右端の列の幅を同じように増減させるサンプルマクロ
3列の表内にカーソルを置いて以下のマクロを実行すると、左端と右端の列の幅が10ポイントずつ減らせます。
Const DELTA = -10
With Selection.Tables(1).Columns
.Item(1).Width = .Item(1).Width + DELTA
.Item(2).Width = .Item(2).Width - DELTA * 2
.Item(3).Width = .Item(3).Width + DELTA
End With
End Sub
サンプルマクロで行っている処理
拙著『Excel VBAユーザーのためのWord VBA入門(2): Tableの基本編』の[11-1. 選択されている表の取得]でも紹介している式「Selections.Tables(1)」を使って、カーソル位置の表を取得し、
With Selection.Tables(1).Columns
拙著の[9-5. オブジェクトを返すTableの特徴的なプロパティ]で紹介しているTable.Columnsプロパティで表の列全体を表すColumnsコレクションを取得しています。
With Selection.Tables(1).Columns
Withブロック内では、Columns.Itemメソッドで取得したColumn.Widthプロパティを使って列幅を変更しています。
1列目と3列目は、定数DELTAに入力した値だけ加算しています。
.Item(1).Width = .Item(1).Width + DELTA .Item(3).Width = .Item(3).Width + DELTA
上記のマクロでは定数DELTAにマイナスの値が代入されているため、実行するたびに列幅が狭くなります。
また、表全体の幅が変化しないように、2列目については定数DELTA×2だけ減算しています。
.Item(2).Width = .Item(2).Width - DELTA * 2
- 『Word VBA入門』で紹介しているオブジェクトごとのプロパティ一覧
- 『Word VBA入門』で紹介しているオブジェクトごとのメソッド一覧
- 『Excel VBAユーザーのためのWord VBA入門(2):Tableの基本編』も出ました。
最終更新日時:2024-04-19 15:44
Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » 表の左端と右端の列の幅を同じように増減させるWordマクロ