実行時に、ユーザーは任意の数の ActiveX コマンド ボタンをシート 1 に追加できます。VBA を使用してこれらの新しいボタンを参照する必要がありますが、その方法がわかりません。
ボタン名が示す論理的な進行を知っています。
(Node#x2)-2=コマンドボタン#=i
これらの新しく作成されたボタンをどうにかして参照する必要があります。これは次のように考えています。
Sheet1.Controls("CommandButton" & i).Select
誰かが正しい構文または代替方法を知っている場合は、アドバイスしてください!
アップデート
Public Sub Node_Button_Duplication()
'
'Comments: Copies and pastes Node 1's button to the appropriate column
' Copy Node 1 button and paste in appropriate location
ActiveSheet.Shapes("CommandButton1").Select
Selection.Copy
Cells(5, 10 + 7 * (NumNodes - 1) - 1).Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementLeft 47.25
Selection.ShapeRange.IncrementTop -13.5
End Sub
ファローアップ
Public Sub Node_Button_Duication()
'
'Comments: Copies and pastes Node 1's button to the appropriate column
Dim shp As Shape
' Copy Node 1 button and paste in appropriate location
ActiveSheet.Shapes("CommandButton1").Select
Selection.Copy
Cells(5, 10 + 7 * (NumNodes - 1) - 1).Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementLeft 47.25
Selection.ShapeRange.IncrementTop -13.5
Debug.Print Selection.Name
Set shp = ActiveSheet.Shapes(Selection.Name)
With shp.OLEFormat.Object.Object
.Caption = "Test"
.Left = 15
.Top = 15
End With
End Sub
これにより、実行時エラー「438: オブジェクトはこのプロパティまたはメソッドをサポートしていません。特にわかりません。
shp.OLEFormat.Object.Object