みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
Word VBAで色々な検索&置換をする方法についてお伝えしています。
前回はコチラの記事。
カーソル位置以降を検索してマッチした文字列に蛍光ペンでハイライトをする方法についてお伝えしました。
さて、蛍光ペンは良いのですが、そもそもWord VBAで検索したときに設定できる書式って、どんなものがありましたっけ?
その多くはFontオブジェクトのプロパティが担っていて、とっても多くの種類があります。
ということで、今回はWord VBAでフォントの設定を変更する方法と、そのプロパティを一挙にまとめました。
では、いってみましょう。
前回のおさらい
前回はカーソル位置以降の検索を行って、マッチした文字列に蛍光ペンでハイライトをするというプログラムを作りました。
Sub findText()
With Selection.Find
.Text = "Word"
Do While .Execute
Selection.Range.HighlightColorIndex = wdTeal
Loop
End With
End Sub
検索するのはいいのですが、蛍光ペンだけでなくて、テキストの置換とか書式の設定とか、ほかにも色々とやりたいことがありますよね。
今回は、まずフォントの設定について変更をする方法についてお伝えします。
Fontオブジェクトとは
以前、こちらの記事でWordにおける書式設定は文字書式と段落書式の二種類があるということをお伝えしました。
スタイル、インデント、配置などそういったものは段落書式が担っていて、段落単位で設定をするものです。
フォントの種類、サイズなどそういう書式は文字書式といって、文字単位で設定していくものですが、Word VBAにおいてその多くはFontオブジェクトが担っています。
Fontオブジェクトは対象となる文字列のフォントの設定を表します。
検索結果に文字列に下線を引く
蛍光ペンはSelectionオブジェクトから直接設定できなかったのですが、FontオブジェクトはSelectionオブジェクトから取得することができます。
つまり、現在の選択範囲のフォント設定ってなわけですね。
Fontオブジェクトには、それこそたくさんプロパティを持っていて、その一つ一つがいろいろな設定を保持しているのですが、まずは一例として、みんな大好きアンダーラインを使ってみましょうか。
アンダーラインはFontオブジェクトのUnderlineプロパティです。
当然、Trueなら下線あり、Falseなら下線なしになりますので、検索結果に下線を引くプロシージャは以下のようになりますね。
Sub findText()
With Selection.Find
.Text = "Word"
Do While .Execute
Selection.Font.Underline = True
Loop
End With
End Sub
これを実際に実行すると
このようにマッチした文字列に下線を引くことができるというわけです。
Fontオブジェクトのプロパティまとめ
Fontオブジェクトですが、本当にたくさんのプロパティを持っています。全部が全部使うことはそうそうないと思いますが、なるべく多く紹介します。
書式のオン・オフを設定するプロパティ
まず、わかりやすくTrueまたはFalseの値を持つプロパティです。Trueにすれば有効になります。
プロパティ | 機能 |
---|---|
AllCaps | 大文字 |
Bold | 太字 |
DoubleStrikeThrough | 二重取消線 |
Emboss | エンボス |
Engrave | 浮彫 |
Italic | 斜体 |
Outline | 中抜き |
Shadow | 影付き |
SmallCaps | 小型英文字 |
StrikeThrough | 取り消し線 |
Subscript | 下付き |
Superscript | 上付き |
Underline | 下線のオン/オフおよび種類 |
これだけでも、たくさんありますね~。
Underlineプロパティだけは、TrueまたはFalse以外に、WdUnderline定数を指定することで下線の種類を設定できたりします。
数値や文字列で書式を設定するプロパティ
続いて、数値や文字列を値として持つプロパティです。
おそらくよく使いそうなのはフォントの種類のNameプロパティ、サイズのSizeプロパティですよね。
プロパティ | 機能 | 値 |
---|---|---|
EmphasisMark | 傍点 | WdEmphasisMark定数 |
Name | フォント名 | 文字列 |
Position | ベースラインからの位置 | 数値(pt) |
Scaling | 水平方向の拡大縮小倍率 | 数値(%) |
Size | フォントサイズ | 数値(pt) |
Spacing | 文字の間隔 | 数値(pt) |
オブジェクトで書式を設定するプロパティ
続いて、専用のオブジェクトでさらに詳細の設定をしていくタイプのプロパティです。
一つ一つ紹介することはできませんが、気になるものがあれば調べてみてください。
プロパティ | 機能 | 値 |
---|---|---|
Borders | 文字列の罫線 | Boardersコレクション |
Duplicate | Fontオブジェクトのコピー | Fontオブジェクト |
Fill | 塗りつぶしの書式 | FillFormatオブジェクト |
Glow | 光彩の書式 | GrowFormatオブジェクト |
Parent | 親オブジェクト | オブジェクト |
Reflection | 反射の書式 | ReflectionFormat オブジェクト |
Shading | 網掛け書式 | Shadingオブジェクト |
TextColor | 色の書式 | ColorFormat オブジェクト |
TextShadow | 影付き書式 | ShadowFormat オブジェクト |
ThreeD | 3D効果の書式 | ThreeDFormat オブジェクト |
まとめ
Word VBAでフォント設定を変更する方法と、Fontオブジェクトのプロパティのまとめということでお送りしました。
たくさんあってげんなりしてしまったかも知れませんが、実際に使うのはこのうちのいくつかだと思いますので、ザーっと見ておくだけでよいと思います。
では、次回はいよいよ置換の方法です。基本の3つのパターンを徹底解説しますよ!
どうぞお楽しみに!