Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » 表の左端と右端の列の幅を同じように増減させるWordマクロ

表の左端と右端の列の幅を同じように増減させるWordマクロ

動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2405(ビルド17602.20000クイック実行)ベータチャネル

Wordの表で、左端と右端の列の幅を同じように増減させようとすると、手作業ではなかなかに面倒です。

私自身が、上図の「左端の列」「右端の列」と入力されているセルの列幅を、同じように増減させたかったのですが。

それに対処するためのWordマクロを作りました。
列が3つ存在する表で、表全体の幅は変更せず、左端と右端の列の幅を同じ値だけ増減させるマクロです。

三列の表で左端と右端の列の幅を同じように増減させるサンプルマクロ

3列の表内にカーソルを置いて以下のマクロを実行すると、左端と右端の列の幅が10ポイントずつ減らせます。

Sub 三列の表で左端と右端の列の幅を同じように増減させる()
 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

最終更新日時:2024-04-19 15:44

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » 表の左端と右端の列の幅を同じように増減させるWordマクロ

「表・テーブル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.