Sub GetShapeNames()
Dim shp As Shape
Dim ws As Worksheet
Set ws = ActiveSheet
For Each shp In ws.Shapes
Select Case shp.Type
'通常の図形(オートシェイプ)
Case msoAutoShape
Debug.Print shp.Name
'グループ
Case msoGroup
Debug.Print shp.Name
End Select
Next shp
End Sub
Sub ChangeOneShapeText()
Dim shp As Shape
Dim newText As String
newText = Range("A1").Value
Set shp = ActiveSheet.Shapes("TextBox 1")
If shp.TextFrame2.HasText Then
shp.TextFrame2.TextRange.Text = newText
End If
End Sub
Excelの 「開発 → マクロ」一覧に表示されるプロシージャには条件があります。
基本的には 「標準モジュールにある Public Sub(引数なし)」だけです。