Excel VBA ワードアートの形状を設定する PresetShape プロパティ

スポンサーリンク

ワードアートの形状を設定する方法

ワードアートの形状を設定または取得するには、TextEffectFormat【テキストエフェクトフォーマット】オブジェクトのpresetShape【プリセットシェイプ】プロパティを使用します。

presetShape【プリセットシェイプ】プロパティの書式と設定値の説明

オブジェクト.TextEffect.PresetShape = 設定値

  • オブジェクト(必須)
    ワードアートを表すShapes【シェイプス】コレクションまたはShape【シェイプ】オブジェクトを指定します。
  • 設定値(必須)
    ワードアートの形状をMsoPresetTextEffectShape 列挙型の定数または値で指定します。

    MsoPresetTextEffectShape 列挙型の定数
    定数 イメージ
    msoTextEffectShapePlainText 1
    msoTextEffectShapeStop 2
    msoTextEffectShapeTriangleUp 3
    msoTextEffectShapeTriangleDown 4
    msoTextEffectShapeChevronUp 5
    msoTextEffectShapeChevronDown 6
    msoTextEffectShapeRingInside 7
    msoTextEffectShapeRingOutside 8
    msoTextEffectShapeButtonCurve 9
    msoTextEffectShapeArchDownCurve 10
    msoTextEffectShapeCircleCurve 11
    msoTextEffectShapeArchUpCurve 12
    msoTextEffectShapeArchUpPour 13
    msoTextEffectShapeArchDownPour 14
    msoTextEffectShapeCirclePour 15
    msoTextEffectShapeButtonPour 16
    msoTextEffectShapeCurveUp 17
    msoTextEffectShapeCurveDown 18
    msoTextEffectShapeCanUp 19
    msoTextEffectShapeCanDown 20
    msoTextEffectShapeWave1 21
    msoTextEffectShapeWave2 22
    msoTextEffectShapeDoubleWave1 23
    msoTextEffectShapeDoubleWave2 24
    msoTextEffectShapeInflate 25
    msoTextEffectShapeDeflate 26
    msoTextEffectShapeInflateBottom 27
    msoTextEffectShapeDeflateBottom 28
    msoTextEffectShapeInflateTop 29
    msoTextEffectShapeDeflateTop 30
    msoTextEffectShapeDeflateInflate 31
    msoTextEffectShapeDeflateInflateDeflate 32
    msoTextEffectShapeFadeRight 33
    msoTextEffectShapeFadeLeft 34
    msoTextEffectShapeFadeUp 35
    msoTextEffectShapeFadeDown 36
    msoTextEffectShapeSlantUp 37
    msoTextEffectShapeSlantDown 38
    msoTextEffectShapeCascadeUp 39
    msoTextEffectShapeCascadeDown 40

指定した文字列でワートアートを作成して40種類の形状を表示するコードと解説

Sub ワードアート形状()
Dim i As Integer
Dim 文字列 As String
文字列 = InputBox("ワードアートの文字列を入力してください。")
For i = 1 To 40
With ActiveSheet.Shapes.AddTextEffect( _
PresetTextEffect:=1, Text:=文字列 & i, _
FontName:="游ゴシック", FontSize:=14, _
FontBold:=msoFalse, FontItalic:=msoFalse, _
Left:=Range("B" & i).Left, Top:=Range("B" & i).Top)
.TextEffect.PresetShape = i
End With
Next i
End Sub
2行目【Dim i As Integer】
ワードアートの形状を設定するPresetShape【プリセットシェイプ】プロパティに設定する値とワードアートを表示する位置でセルの行数を兼ねるカウンター変数の「i」を整数型(Integer)で宣言します。


3行目【Dim 文字列 As String】
ワードアートの文字列を格納する変数「文字列」を文字列型(String)で宣言します。


4行目【文字列 = InputBox(“ワードアートの文字列を入力してください。”)】
InputBox【インプットボックス】関数を使用してユーザーにワードアートで使用する文字列を入力してもらい変数「文字列」に代入します。


5行目【For i = 1 To 40】
For Next【フォアネクスト】ステートメントを使用して繰り返し処理の始まりです。カウンター変数「i」に1~40の値を順次代入します。


6行目~10行目【 With ActiveSheet.Shapes.AddTextEffect( _
PresetTextEffect:=1, Text:=文字列 & i, _
FontName:=”游ゴシック”, FontSize:=14, _
FontBold:=msoFalse, FontItalic:=msoFalse, _
Left:=Range(“B” & i).Left, Top:=Range(“B” & i).Top)】

Shapes【シェイプス】コレクションのAddTextEffect【アドテキストエフェクト】メソッドを使用してワードアートを表す、Shape【シェイプ】オブジェクトを作成してWith【ウィズ】ステートメントで指定します。With【ウィズ】ステートメントで指定するときは、戻り値があるため、名前付き引数であっても引数はカッコで囲みます。

ワードアートの文字列を表す、引数Text【テキスト】には、ユーザーが指定した変数文字列を設定して、アンパサンドを使用して
ワードアートの形状を表す値は格納されているカウンター変数「i」を設定してワードアートの形状番号を取得します。


11行目【.TextEffect.PresetShape = i】
Wiht【ウィズ】ステートメントで指定したワードアートを表すShape【シェイプ】オブジェクトのTextEffect.PresetShapeプロパティにカウンター変数iに格納されている値を設定して40種類のワードアートの形状を表示します。


実行結果



以上で、ワードアートの形状を設定する方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告