Home » ワードマクロ・Word VBAの使い方 » フォント » VBAで囲み線を設定する-Font.Borders.Item(1)

VBAで囲み線を設定する-Font.Borders.Item(1)

動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2005 ビルド12827.20336 Microsoft Store)

「word vba 囲み戦」
「word vba 囲い線を編集する」
「ワードvba 囲い線の設定」
といった検索で、時折アクセスがあることに気が付きました。

Word VBAで囲み線の設定を行うには、どのようなコードを書けばいいのかを探していらしたのでしょう。

[スポンサードリンク]

囲み線を設定するサンプルマクロ

囲み線を設定したい文字列を選択しておいて、以下のSubプロシージャを実行してみてください。

Sub 囲み線を設定する()
 With Selection.Font.Borders.Item(1)
  .LineStyle = wdLineStyleDouble
  .Color = RGB(255, 0, 0)
 End With
End Sub

選択されていた文字列に、二重線(wdLineStyleDouble)で、赤色(RGB(255, 0, 0))の囲み線が設定されます。

囲み線を非表示にするサンプルマクロ

以下のSubプロシージャで、選択されている文字列の囲み線が非表示になります。

Sub 囲み線を非表示にする()
 With Selection.Font.Borders.Item(1)
  .Visible = False
 End With
End Sub

囲み線はFont.Borders.Item(1)で取得

最速攻略 Word マクロ / VBA徹底入門 』の、5-11「文字で線を囲む」に以下の記述があります。

文字に設定できる罫線を表すBordersコレクションには一種類のメンバーしか含まれておらず、そのBorderオブジェクトを取得するには、インデックスとして「1」を指定します。

せめて定数を用意しておいてくれればいいのにと思いつつ、この記述に従い上記のSubプロシージャでは、
  With Selection.Font.Borders.Item(1)
としました。

また、
  With Selection.Borders.Item(1)
でも、まあまあ動くようではあるのですが、「Selection.Borders.Item(1)」では、文字の囲み線という意味がまったく読み取れないので、Fontプロパティを明記して「Selection.Font.Borders.Item(1)」としています。

Rangeオブジェクトを利用する場合

Word VBAのSelectionオブジェクトはRangeオブジェクトにしても同じように動くことが多く、上記のSubプロシージャも、
  With Selection.Font.Borders.Item(1)
の部分を、例えば、
  With ActiveDocument.Range(0, 1).Font.Borders.Item(1)
にすれば、アクティブな文書の1文字目を処理対象にできます。

最終更新日時:2021-04-25 10:39

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » フォント » VBAで囲み線を設定する-Font.Borders.Item(1)

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

.