【VBA】オートシェイプを作成する

VBAで
 ・オートシェイプを作成
できます!

オートシェイプ(四角形の丸い吹き出し)
オートシェイプ(四角形の丸い吹き出し)
PR

VBAコード

ここでは例として
 ・シート「sample」上にオートシェイプ(四角形の丸い吹き出し)を作成
します。

Option Explicit

Sub sample()
    
    Dim ws As Worksheet
    Dim autoShapeRange As Range
    Dim autoshapeSample As shape
    
    'オートシェイプを作成するシート
    Set ws = Worksheets("sample")
    'オートシェイプを配置するセル
    Set autoShapeRange = ws.Range("B2:F6")
    
    'オートシェイプを作成
    Set autoshapeSample = ws.Shapes.AddShape(msoShapeRoundedRectangularCallout, _
                                    Top:=autoShapeRange.Top, _
                                    Left:=autoShapeRange.Left, _
                                    Width:=autoShapeRange.Width, _
                                    Height:=autoShapeRange.Height)
    
    'オートシェイプの枠線の設定
    With autoshapeSample.Line
        '種類
        .DashStyle = msoLineSolid
        '色
        .ForeColor.RGB = RGB(0, 0, 0)
        '太さ
        .Weight = 1
    End With
    
    'オートシェイプの塗りつぶしの設定
    With autoshapeSample.Fill
        '色
        .ForeColor.RGB = RGB(255, 255, 204)
    End With

    'オートシェイプのテキストの配置位置の設定
    With autoshapeSample.TextFrame2
        '上揃え
        .VerticalAnchor = msoAnchorTop
        '左揃え
        .TextRange.ParagraphFormat.Alignment = msoAlignLeft
    End With
    
    'オートシェイプのテキストの設定
    With autoshapeSample.TextFrame2.TextRange
        'フォント
        .Font.NameFarEast = "メイリオ"
        'フォントサイズ
        .Font.Size = 10.5
        '色
        .Font.Fill.ForeColor.RGB = RGB(0, 0, 0)
        '文字列
        .Characters.Text = "VBAでオートシェイプを作成しました。" & vbCrLf & _
                           "各種設定もしました。"
    End With
    
End Sub

以下を指定します(10~12行目)。
※状況に応じて任意の値を指定してください。

・オートシェイプを作成するシート
・オートシェイプを配置するセル

オートシェイプを作成します(15~19行目)。
※「Worksheetオブジェクト」の「Shapes」プロパティにより、「Shapesオブジェクト」を取得します。
※「Shapesオブジェクト」の「AddShape」メソッドにより、「Shapeオブジェクト」を取得します。
※「AddShape」メソッドの第1引数に「msoShapeRoundedRectangularCallout」を指定することで、「四角形の丸い吹き出し」が作成されます。

※「四角形の丸い吹き出し」以外を作成することもできます。詳細は公式サイトをご確認ください。

以下の設定をします。

・オートシェイプの枠線(22~29行目)。
・オートシェイプの塗りつぶし(32~35行目)。
・オートシェイプのテキストの配置位置(38~43行目)。
・オートシェイプのテキスト(46~56行目)。

「オートシェイプのテキストの設定」について、「文字列」は最後に設定します。
※「フォント」、「フォントサイズ」、「色」を先に設定します。

PR

実行結果

オートシェイプを作成できました。
※「四角形の丸い吹き出し」を作成できました。

実行結果
実行結果
PR

参考

上記で使用した以下の詳細は、公式サイトをご確認ください。

●「Worksheetオブジェクト」の「Shapes」プロパティ


●「Shapesオブジェクト」の「AddShape」メソッド