アクティブセルの横にシェイプを作成する
シート上の不要な既存のシェイプを削除します。
その後にテキストボックスを追加しています。
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
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