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

スポンサーリンク

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

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

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

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

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

    MsoPresetTextEffectShape 列挙型の定数
    定数イメージ
    msoTextEffectShapePlainText1
    msoTextEffectShapeStop2
    msoTextEffectShapeTriangleUp3
    msoTextEffectShapeTriangleDown4
    msoTextEffectShapeChevronUp5
    msoTextEffectShapeChevronDown6
    msoTextEffectShapeRingInside7
    msoTextEffectShapeRingOutside8
    msoTextEffectShapeButtonCurve9
    msoTextEffectShapeArchDownCurve10
    msoTextEffectShapeCircleCurve11
    msoTextEffectShapeArchUpCurve12
    msoTextEffectShapeArchUpPour13
    msoTextEffectShapeArchDownPour14
    msoTextEffectShapeCirclePour15
    msoTextEffectShapeButtonPour16
    msoTextEffectShapeCurveUp17
    msoTextEffectShapeCurveDown18
    msoTextEffectShapeCanUp19
    msoTextEffectShapeCanDown20
    msoTextEffectShapeWave121
    msoTextEffectShapeWave222
    msoTextEffectShapeDoubleWave123
    msoTextEffectShapeDoubleWave224
    msoTextEffectShapeInflate25
    msoTextEffectShapeDeflate26
    msoTextEffectShapeInflateBottom27
    msoTextEffectShapeDeflateBottom28
    msoTextEffectShapeInflateTop29
    msoTextEffectShapeDeflateTop30
    msoTextEffectShapeDeflateInflate31
    msoTextEffectShapeDeflateInflateDeflate32
    msoTextEffectShapeFadeRight33
    msoTextEffectShapeFadeLeft34
    msoTextEffectShapeFadeUp35
    msoTextEffectShapeFadeDown36
    msoTextEffectShapeSlantUp37
    msoTextEffectShapeSlantDown38
    msoTextEffectShapeCascadeUp39
    msoTextEffectShapeCascadeDown40

指定した文字列でワートアートを作成して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種類のワードアートの形状を表示します。


実行結果



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

スポンサーリンク

関連記事・広告