PR

【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種類あり、値を指定しても処理が可能です。

名前 画像
msoTextEffect1 0  
msoTextEffect2 1  
msoTextEffect3 2  
msoTextEffect4 3  
msoTextEffect5 4  
msoTextEffect6 5  
msoTextEffect7 6  
msoTextEffect8 7  
msoTextEffect9 8  
msoTextEffect10 9  
msoTextEffect11 10  
msoTextEffect12 11  
msoTextEffect13 12  
msoTextEffect14 13  
msoTextEffect15 14  
msoTextEffect16 15  
msoTextEffect17 16  
msoTextEffect18 17  
msoTextEffect19 18  
msoTextEffect20 19  
msoTextEffect21 20  
msoTextEffect22 21  
msoTextEffect23 22  
msoTextEffect24 23  
msoTextEffect25 24  
msoTextEffect26 25  
msoTextEffect27 26  
msoTextEffect28 27  
msoTextEffect29 28  
msoTextEffect30 29  
msoTextEffect31 30  
msoTextEffect32 31  
msoTextEffect33 32  
msoTextEffect34 33  
msoTextEffect35 34  
msoTextEffect36 35  
msoTextEffect37 36  
msoTextEffect38 37  
msoTextEffect39 38  
msoTextEffect40 39  
msoTextEffect41 40  
msoTextEffect42 41  
msoTextEffect43 42  
msoTextEffect44 43  
msoTextEffect45 44  
msoTextEffect46 45  
msoTextEffect47 46  
msoTextEffect48 47  
msoTextEffect49 48  
msoTextEffect50 49  

下のサンプルコードは値を指定して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をコピーしました