【VBA】ワードアートを作成する

これで楽に!?VBA活用

こんにちは、Ryoです。
処理を行う中で視覚的に表現したい場合などにAddTextEffectメソッドを利用することでワードアートを作成することができます。テキスト効果の種類としては50種類ありますので、VBAでワードアートを扱う方法やテキスト効果について書いていきたいと思います。

スポンサーリンク

1.サンプル概要

下の画像はテキスト効果15、フォント=Arial、フォントサイズ=28などを設定したもので、それを記述で指定して実行したものです。テキスト効果は0-49の50種類設定できます。

その他のテキスト効果については次項に記載します。

2.サンプルコード

Sub Sample1()
    'PresetTextEffect効果15を指定
    Worksheets("Sheet1").Shapes.AddTextEffect _
        PresetTextEffect:=msoTextEffect15 _
        , Text:="Sample Text Effect" _
        , FontName:="Arial" _
        , FontSize:=28 _
        , FontBold:=False _
        , FontItalic:=False _
        , Left:=10 _
        , Top:=20
        
        'Text:文字列を指定
        'FontName:フォントを指定
        'FontSize :フォントサイズを指定
        'FontBold :太字を設定
        'FontItalic :斜体を設定
        'Left :左端の位置を指定
        'Top :上端の位置を指定
        
End Sub

ワードアートオブジェクトを作成するにはAddTextEffectメソッドを利用します。

構文:AddTextEffect(PresetTextEffect, Text, Fontname, FontSize, FontBold, FontItalic, Left, Top)

引数の詳細については以下の通りです。

引数説明
PresetTextEffectワードアートの種類を表すMsoPresetTextEffectクラスの値を指定
FontNameフォント名を指定
FontSizeフォントサイズを指定
FontBold太字にするにはTrue指定
FontItalic斜体にするにはTrue指定
Left左端の位置をポイント値で指定
Top上端の位置をポイント値で指定

テキストエフェクト効果は50種類あり、値を指定しても処理が可能です。

名前画像
msoTextEffect10 
msoTextEffect21 
msoTextEffect32 
msoTextEffect43 
msoTextEffect54 
msoTextEffect65 
msoTextEffect76 
msoTextEffect87 
msoTextEffect98 
msoTextEffect109 
msoTextEffect1110 
msoTextEffect1211 
msoTextEffect1312 
msoTextEffect1413 
msoTextEffect1514 
msoTextEffect1615 
msoTextEffect1716 
msoTextEffect1817 
msoTextEffect1918 
msoTextEffect2019 
msoTextEffect2120 
msoTextEffect2221 
msoTextEffect2322 
msoTextEffect2423 
msoTextEffect2524 
msoTextEffect2625 
msoTextEffect2726 
msoTextEffect2827 
msoTextEffect2928 
msoTextEffect3029 
msoTextEffect3130 
msoTextEffect3231 
msoTextEffect3332 
msoTextEffect3433 
msoTextEffect3534 
msoTextEffect3635 
msoTextEffect3736 
msoTextEffect3837 
msoTextEffect3938 
msoTextEffect4039 
msoTextEffect4140 
msoTextEffect4241 
msoTextEffect4342 
msoTextEffect4443 
msoTextEffect4544 
msoTextEffect4645 
msoTextEffect4746 
msoTextEffect4847 
msoTextEffect4948 
msoTextEffect5049 

下のサンプルコードは値を指定して50種類のテキストエフェクトをアクティブシートに出力するものですので、ご参考までに。

Sub Sample2()

    Dim i As Integer
    Dim strTextEf As String

    For i = 0 To 49
       strTextEf = "TextEffect" & i + 1
       ActiveSheet.Shapes.AddTextEffect _
       PresetTextEffect:=i, _
       Text:=strTextEf, _
       FontName:="Meiryo UI", _
       FontSize:=28, _
       FontBold:=False, _
       FontItalic:=False, _
       Left:=10, _
       Top:=i * 40
    Next i
    
End Sub

出力結果としては以下のようになります。

3.まとめ

利用頻度や機会はあまり多くないものと思いますが、知っておくと用途によっては役立つこともあるのではないかと思います。



PresetTextEffectは値で指定でき、Textも変数で対応できますので条件に応じて出力するワードアートの切り替えも可能ですが、このような視覚効果は使い過ぎると逆効果にもなりますのでご利用はご注意ください。

以上、ワードアートを作成する方法についてでした!今回の記事が何かの参考になれば幸いです。

Ryo

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