【VBA】ワードの選択範囲の書式を変更する

エクセルVBAでよく使うコードの備忘録。VBAでワードファイルを操作し、指定範囲の書式を変更するコード。

スポンサーリンク

事前準備

VBAでワードファイルを操作するには、参照設定が必要です。VBAのコードエディタから「ツール > 参照設定」と進み、「Microsoft Word XX.X Object Library」にチェックを入れておきます。

共通コード

説明するコードを簡素化するために使用した変数などの共通部分です。今回のテーマの本質的な部分には関係はありません。コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。

'--- Wordのアプリケーションオブジェクト ---'
Dim objWord As Word.Application
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
    
'--- ドキュメントオブジェクト ---'
Dim objDoc As Word.Document
Set objDoc = objWord.Documents.Open("[ワードファイルのパス]")
    
'--- 全体を選択する ---'
objDoc.StoryRanges(wdMainTextStory).Select

フォントの種類

フォントの変更はFontオブジェクトのNameプロパティから行います。

objWord.Selection.Font.Name = "[フォント名(Times New Romanなど)]"

サイズ

フォントのサイズを変更するにはSizeプロパティを使います。

objWord.Selection.Font.Size = [フォントサイズ]

太字

フォントを太字にするかどうかの制御にはBoldプロパティを使います。

objWord.Selection.Font.Bold = [TrueかFalse]

斜体

斜体にするにはItalicプロパティを使います。

objWord.Selection.Font.Italic = [TrueかFalse]

フォントの色の変更にはColorIndexプロパティを使用します。

objWord.Selection.Font.ColorIndex = [ColorIndex(wdBlackなど)]

取り消し線

取り消し線の設定には、StrikeThroughかDoubleStrikeThroughプロパティを使います。DoubleStrikeThroughをTrueにすると二重の取り消し線になります。

'--- 取り消し線(一重) ---'
objWord.Selection.Font.Strikethrough = [TrueかFalse]
    
'--- 取り消し線(二重) ---'
objWord.Selection.Font.DoubleStrikeThrough = [TrueかFalse]

下線

下線を引くにはUnderlineプロパティを使います。下線の種類(点線など)はプロパティに設定する値でコントロールします。

objWord.Selection.Font.Underline = [下線の種類(wdUnderlineDashなど)]

下線の色

下線の色はUndderlineColorプロパティで設定できます。

objWord.Selection.Font.UnderlineColor = [下線の色(wdColorBlackなど)]

浮き出し

文字を浮き出しにするにはEmbossプロパティをTrueに設定します。

objWord.Selection.Font.Emboss = [TrueかFalse]

浮き彫り

文字を浮き彫りにするにはEngraveプロパティをTrueに設定します。

objWord.Selection.Font.Engrave = [TrueかFalse]

強調マーク

文字に強調マークを付けるにはEmphasisMarkプロパティです。

objWord.Selection.Font.EmphasisMark = [マークの値(wdEmphasisMarkOverCommaなど)]

フォントにかげを付けるには、Shadowプロパティの値をTrueにします。

objWord.Selection.Font.Shadow = [TrueかFalse]

上付き・下付き文字

文字を上付きにするには、Superscriptプロパティの値をTrueにします。下付きにする場合は、Subscriptプロパティです。

'--- 上付き文字 ---'
objWord.Selection.Font.Superscript = [TrueかFalse]

'--- 下付き文字 ---'
objWord.Selection.Font.Subscript = [TrueかFalse]