テキストの書式設定(サイズやフォントなど)を取得・設定する方法

VisioBAで書式の取得設定をしよう VBA

う~~ん、このテキストをもう少し大きくしたいんだよね。

フォントサイズの設定だね。

テキストだってお好みで変更できるよ。

フォントサイズは文字の大きさを指定する部分で、通常テキストを右クリックすると↓↓↓こんな感じで出てきます。

今回はテキストのフォントやサイズ、太字などの書式を取得・設定する方法をご紹介します。

サイズ&フォントの表し方について

フォントサイズって〇〇ptって取得できるの?

何もしないとinch(インチ)で取得したりするから
単位を指定した方良いかも・・・。

じゃあフォントは?

“MS Pゴシック”とか”Malgun Gothic”みたいな感じ?

フォントIDっていうのがあってそれを指定するんだ、

調べないとならないからちょっと面倒だね。

フォントサイズの単位を指定するって?

Visioって標準の単位がインチ(inch)なんです。
そう、なんでも!
フォントサイズを指定しようとするとインチになったりもします😱
なので
 .Result(“pt”)
を最後に付けて単位を指定してあげて下さい。

フォントのIDって?

Visioで使っているフォントにはひとつづつIDがありまして。

例えば)
 MS Pゴシック:7
 游ゴシック:304
 MS P明朝:312
 などなど・・・

ただし、フォントIDはシステムごとに違う場合があるのでご自分の環境で確認するのが安全です。

この後にフォントIDを取得するSampleがあるので良かったら~。

フォントIDを取得する構文

Visio VBAでフォントIDを取得するには

図形に記入されているテキストのIDなら

テキストが書かれている図形.Cells(“Char.font”)

フォント名を指定するなら

ThisDocument.Fonts(“フォント名”).ID
※フォント名は「MS Pゴシック」「MS P明朝」「游ゴシック」などの名前

Sample

フォント名を入力するとフォントIDをメッセージボックスに出すサンプルを作ってみました。

Sub Font_InBox()

  On Error GoTo NoFont
  InFont = InputBox("フォント名を入力して下さい。")
  
  If 文字列 = "" Then
    Exit Sub
  End If
  MyFont = ThisDocument.Fonts(InFont).ID
  MsgBox ("フォントID:" & MyFont)
  Exit Sub

NoFont:
MsgBox ("有効なフォントを入れて下さい。")

End Sub

フォントサイズを取得する方法

まずは取得する方法から!

構文

Visio VBAでテキストのサイズを取得する構文はこちら。

フォントサイズ=図形.Cells(“Char.size”).Result(“pt”)

フォントを変更する構文はこちら。

日本語フォントID=図形.Cells(“Char.asianfont”)
英数フォントID=図形.Cells(“Char.font”)

※フォント名を調べるには

Sample

選択中の図形に書かれたテキストのフォント、サイズを取得するサンプルです。
何かしら図形を選択しておいてください。

コード

Sub test1()

Dim CurrentFont, CurrentSize

    'テキストのフォントを取得します。
    CurrentFont = ActiveWindow.Selection(1).Cells("Char.font")
    'テキストのフォントサイズを取得します。
    CurrentSize = ActiveWindow.Selection(1).Cells("Char.size").Result("pt")
    
    MsgBox ("フォント名:" & CurrentFont & vbCrLf & "フォントサイズ:" & CurrentSize)
    
End Sub

実行結果

「テキスト①」という文字のサイズが大きくなったと思います。

フォントサイズを設定する方法

いざ!フォント&サイズを変えてみよう

構文

Visio VBAで任意の図形に書かれているテキストのサイズを変更する構文はこちら。

図形.Cells(“Char.size”).Result(“pt”) = ポイント数

フォントを変更する構文はこちら。

図形.Cells(“Char.asianfont”) = 日本語フォントID
図形.Cells(“Char.font”) = 英数フォントID

Sample

選択中の図形に書かれたテキストのフォント、サイズを変えるさせるサンプルです。
何かしら図形を選択しておいてください。

コード

Sub test2()

    'テキストの日本語フォントを「HG正楷書体-PRO フォントID:165」に設定します。
    ActiveWindow.Selection(1).Cells("Char.asianfont") = 165
    'テキストのフォントを「メイリオ フォントID:303」に設定します。
    ActiveWindow.Selection(1).Cells("Char.font") = 303
    
    'テキストのフォントサイズを指定します。
    ActiveWindow.Selection(1).Cells("Char.size").Result("pt") = 20
        
End Sub

実行結果

テキスト①が楷書っぽく、TEXT1が影付きっぽく、サイズも大きくなったかと思います。

その他文字の設定について

先ほどのフォントやサイズと同じように、Char.〇〇の〇〇の部分を変えるといろんな設定が可能です。

図形.Cells(“Char.○○○○”)

使いそうな設定を一覧にしてみました。

設定パラメーター
英数字用のフォントfont
日本語用のフォントasianfont
スタイルstyle
標準:0 太字:1,斜体:2, 太字斜体:3
サイズsize
color
カラーコードまたはTHEMEGUARD(RGB(***,***,***))
文字幅fontscale(%)
文字間隔spacing(pt)
狭くするならマイナスを付ける 例)-1ptなど
英字設定case
標準:0, すべて大文字:1, 先頭文字のみ大文字:2
位置pos
標準:0, 上付き:1, 下付き:2
下線(一重線)style
一重線:4
下線(二重線)dblUnderline
なし:False, あり:True
取り消し線(一重線)strikethru
なし:False, あり:True
取り消し線(二重線)doubleStrikethrough
なし:False, あり:True
透過colorTrans(%)

フォントに関する設定は大体なんでもできるんだね。

シェイプシート&ヘルプを参考に探すと

もっとマニアックな設定も~(笑)

タイトルとURLをコピーしました