つらつら Excel VBA

私の備忘録です。

オートシェイプ名を配列にしてグループ化

オートシェイプを作るたびに名前を配列に格納し、最後に配列からグループ化。

Dim myShape As Shape
Dim arrName() As String

Set myShape = オートシェイプを作る処理01
Call ShapeNameArray(arrName, myShape.Name)
'~略~
Set myShape = オートシェイプを作る処理20
Call ShapeNameArray(arrName, myShape.Name)

Shapes.Range(arrName).Group.Name = "魔法陣1"


何度も実行するので処理をまとめた。やっつけ仕事。

'配列を1つ増やして追加する
Sub ShapeNameArray(arr, s)
    On Error GoTo add1
    Dim i As Integer: i = 0
    i = UBound(arr)
add1:
    i = i + 1
    ReDim Preserve arr(1 To i)
    arr(i) = s
End Sub


部品ごとにグループ化されていると移動や回転が容易。

以上。