Excel VBA

【Excel VBA】【マクロ】【Tips】図形のループそしてその中のグループアイテム内のループ

こんにちは!Lenocoです。本日も見てくださりありがとうございます。

今回は図形のループについてのTips回です!!!

図形のループ

図形のループって、なんだか分かりづらいんですよね。
さらにグループ化されている図形の中の1つの図形を特定するなんてさらに混乱です!

今回、2つのループを使って図形を一つずつ見ていきたいと思います。
以下の図形を用意しました。②と④の図形は、矢印の図形をグループ化した図形となっています。

以下のコードを回すとどうなるでしょうか。F8で一つずつ動かしてみます。

コード

Sub Sample()
    Dim sha As Shape
    Dim gSha As Shape
        
    For Each sha In Sheets("Sheet3").Shapes
        sha.Select

        If sha.Type = msoGroup Then
            For Each gSha In sha.GroupItems
                gSha.Select
            Next gSha
        End If
    Next sha
End Sub

コードの説明

動きを説明します。
1週目の外側のループで、①の図形が選択されます。
この図形はグループ化されていないのでIf文には入りません。
2週目の外側のループで、③の図形が選択されます。
こちらもグループ化されていないのでIf文には入りません。
3週目の外側のループで、②の図形が選択されます。
グループ化されている図形なのでIf文にはいります。
1週目の内側のループで、②の図形の丸の図形が選択されます。
2週目の内側のループで、②の図形の矢印の図形が選択されます。
内側のループを抜けます。
4週目の外側のループで、④の図形が選択されます。
グループ化されている図形なのでIf文にはいります。
1週目の内側のループで、④の図形の平行四辺形の図形が選択されます。
2週目の内側のループで、④の図形の矢印の図形が選択されます。
内側のループを抜けます。
外側のループを抜けます。

・・・という動きになります。
※ループで図形を読み込む順番は、図形を作成した順番によって変わるかもしれません。
図形のループはややこしいですが、少しずつ整理して理解していきましょう!

Lenoco

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です