(祝)東京オリンピック!

(祝)北京オリンピック!

SHAPE関係

アクティブセルの横にシェイプを作成する

シート上の不要な既存のシェイプを削除します。
その後にテキストボックスを追加しています。

AddShapeメソッド

図形の四角(レクタングル)方法があります。

OLEObjects

チェクボックス・コンボボックスを作成するときは、このメソッドを使う必要があります。

コマンドボタン 	    Forms.CommandButton.1
コンボボックス 	    Forms.ComboBox.1
チェックボックス    Forms.CheckBox.1
リストボックス 	    Forms.ListBox.1
テキストボックス    Forms.TextBox.1
スクロールバー 	    Forms.ScrollBar.1
スピンボタン 	    Forms.SpinButton.1
オプションボタン    Forms.OptionButton.1
ラベル              Forms.Label.1
イメージ            Forms.Image.1
トグルボタン 	    Forms.ToggleButton.1

COPY

Private Sub mySub()
    Dim myDocument          As Object
    Dim Sp                  As Shape
    Dim SpVal               As String
        
    Set myDocument = ActiveCell.Parent
    SpVal = ActiveCell.Value
        
    For Each Sp In myDocument.Shapes
        If InStr(Sp.Name, "消したい名前") > 0 Then
            Sp.Delete
        End If
    Next Sp

    With myDocument.Shapes.AddTextbox(msoTextOrientationHorizontal, _
                                      ActiveCell.Offset(0, 1).Left, _
                                      ActiveCell.Offset(0, 1).Top, _
                                      200, _
                                      12)
        .Name = "名前" & SpVal
        .Placement = xlFreeFloating
        With .TextFrame2
            .TextRange.Text = "Here is some test text"
            .MarginBottom = 0
            .MarginLeft = 0
            .MarginRight = 0
            .MarginTop = 0
        End With
    End With

    'チェックボックスを作成する場合は、OLEObjectsを使う必要があります。
    With myDocument.OLEObjects.Add( _
            ClassType:="Forms.CheckBox.1", _
            Link:=False, _
            DisplayAsIcon:=False, _
            Left:=0, _
            Top:=0, _
            Width:=100, _
            Height:=15)
        .LinkedCell = ActiveCell.Offset(0, 1).Address
        '略
    End With

End Sub