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