Excel VBAで図形(オートシェイプ)を簡単に作成する方法:三角くじを作ってみよう - Step2

VBAのShapes.AddShapeメソッドとmsoShapeIsoscelesTriangleを使用し三角形の図形を作成する方法です。



Shapes.AddShapeメソッドのシェイプのタイプにmsoShapeIsoscelesTriangleを設定し三角形を作成しています。
Shapes.AddShapeメソッドはさらに、作成位置やサイズを設定することができます。
さらに図形の透明度は50%、塗りつぶし色は赤に設定しています。
図形の上に表示される文字は黒色、太字、サイズ16、中央表示にしています。


シート画面

コードではコピー後、削除してしまします。
この画像はその後ペーストをした結果です。
赤色で半透明な三角クジ

シートのVBAコード

下記のVBAコードに変更してください。

'作成開始ボタン
Private Sub CommandButton1_Click()
    Dim ln1 As Long
    Dim ln2 As Long
    
    ln1 = MyGetSuchi("C2")
    If ln1 <= 0 Or ln1 > 100 Then
        MsgBox "くじ枚数は1~100の範囲で入力してください。"
        Exit Sub
    End If
    
    ln2 = MyGetSuchi("C3")
    If ln2 < 0 Or ln2 > ln1 Then
        MsgBox "当たり枚数は,くじ枚数より少なくしてください。"
        Exit Sub
    End If
    
    Range("C2") = ln1
    Range("C3") = ln2
    
    ExMakeShape
End Sub

下記のVBAコードを追加してください。

Sub ExMakeShape()
    Dim tshape As Shape
    
    Set tshape = Sheets("くじ引き").Shapes.AddShape(Type:=msoShapeIsoscelesTriangle, Left:=0, Top:=0, Width:=216, Height:=94.5)

    '塗りつぶし
    tshape.Fill.Visible = True
    '透明度
    tshape.Fill.Transparency = 0.5
    '塗りつぶし色
    tshape.Fill.ForeColor.RGB = vbRed
    
    
    '文字をセット
    tshape.TextFrame.Characters.Text = "三角くじ"
    '文字色
    tshape.TextFrame.Characters.Font.ColorIndex = 0
    '太字
    tshape.TextFrame.Characters.Font.Bold = True
    'サイズ
    tshape.TextFrame.Characters.Font.Size = 16
    '中央に表示
    tshape.TextFrame.HorizontalAlignment = xlCenter
    '選択
    tshape.Select
    'コピー
    tshape.Copy
    '削除
    tshape.Delete
    Set tshape = Nothing
End Sub

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved