記事公開日
最終更新日
エクセルからワードのテキストブロックのフォントを制御する

宛名のレイアウト・・・・・・を目標と言う事で、
前回は、テキストブロックを追加するところまで行いました。
今回は、テキストのフォントオブジェクトが持つ機能から、宛名レイアウトに使うと思われる項目について紹介します。
私自身、必要と思われる機能を探しながら、試行錯誤と言ったところですので、全ての機能を紹介する処までは行きません。
これを機会に、試していただければ幸いです。
そのうち、色々設定を変えて確認しましたら、改めて紹介します。
[マクロの記録]を通して、フォントに絡む項目をトレースしました。
以下に示すように多くの項目の指定が可能のようです。
    With Selection.Font
        .NameFarEast = "MS 明朝"
        .NameAscii = "G-OTF 新ゴ Pro R"
        .NameOther = "G-OTF 新ゴ Pro R"
        .Name = "+本文のフォント - 日本語"
        .Size = 10.5
        .Bold = True
        .Italic = False
        .Underline = wdUnderlineNone
        .UnderlineColor = wdColorAutomatic
        .StrikeThrough = False
        .DoubleStrikeThrough = False
        .Outline = False
        .Emboss = False
        .Shadow = False
        .Hidden = False
        .SmallCaps = False
        .AllCaps = False
        .Color = wdColorAutomatic
        .Engrave = False
        .Superscript = False
        .Subscript = False
        .Spacing = 0
        .Scaling = 100
        .Position = 0
        .Kerning = 1
        .Animation = wdAnimationNone
        .DisableCharacterSpaceGrid = False
        .EmphasisMark = wdEmphasisMarkNone
        .Ligatures = wdLigaturesNone
        .NumberSpacing = wdNumberSpacingDefault
        .NumberForm = wdNumberFormDefault
        .StylisticSet = wdStylisticSetDefault
        .ContextualAlternates = 0
    End With
上記の、項目は、次に示すメニューバーの、Wordのフォントグループに有る機能が設定が出来ると思われます。
この中から、宛名のレイアウトに最低限必要と思われる機能を探しました。
フォントの指定
項目を見る限り、いくつかのフォントを指定できるようです。
基本的には、
    .Name = "A-OTF リュウミン Std EH-KO"
フォントサイズ
    .Size = 16 'フォントサイズ
太字 あまり使わない方が良いと思います
.Bold = False '太字 True
文字間隔 ポイント指定で、文字間隔を変えます
     溢れ処理時に使うかもしれません。
.Spacing = 0 '文字間
平体/長体 パーセントで平体から長体に変える事が出来ます。
      溢れ処理時に使う事が有りそうです。
.Scaling = 100 '平体/長体
ベースラインシフト
    文字の位置を上下に移動できます。
.Position = 0 'ベースラインシフト
最後に、全体のサンプルマクロを紹介してますが、先に紹介している、テキストボックスを作るマクロに、
上記のフォントのプロパティー設定を追加したものです。
フォントの部分を書換えて、試してください。
実行結果
サンプルマクロ全体
Sub Macro04()
    Dim myWord As New Word.Application         ' Word 起動
    Dim docWord As Document                    
    
    Set myWord = CreateObject("Word.Application")
    Set docWord = myWord.Documents.Add
        ' Word を表示する
    myWord.Visible = True
    
    InData = Sheet1.Cells(2, 4) 'シート1の2行4列のデータ
    
Rem ブックのサイズをはがきサイズに
    With docWord.PageSetup
        .PageWidth = MillimetersToPoints(100)
        .PageHeight = MillimetersToPoints(148)
        .LeftMargin = MillimetersToPoints(5)
        .RightMargin = MillimetersToPoints(5)
        .TopMargin = MillimetersToPoints(5)
        .BottomMargin = MillimetersToPoints(5)
    End With
    
Rem テキストボックスを作る
    Set TextFramA1 = docWord.Shapes.AddTextbox _
   (Orientation:=msoTextOrientationVerticalFarEast, Left:=144, Top:=60, Width:=80, Height:=300)
 
    TextFramA1.TextFrame.TextRange.Text = InData 'データを書き込む
    
    'TextFramA1.Line.ForeColor = RGB(256, 256, 256) '枠の色を白にする
    'TextFramA1.Line.Visible = msoFalse '枠線無しに
Rem フォントの設定をこなう
    With TextFramA1.TextFrame.TextRange.Font
        .Name = "SO昭和行書"
        .Size = 16 'フォントサイズ
        .Bold = False   '太字 True
        .Spacing = 0   '文字間
        .Scaling = 100 '平体/長体
        .Position = 0   'ベースラインから
        '.Superscript = True    '上付 True
        '.Subscript = False  '下付 TRUE
        '.Italic = False '斜体 True   False
    End With
End Sub






