このページではVBAを使って、エクセルシート上にある複数の図形を自動でグループ化する方法をご紹介していきます。
シンプルな図形だけでなく、グラフなんかが混ざっていても対応可能です。
それではさっそくやっていきましょう。
※VBAの使い方から勉強したいという方はまずは以下からご覧ください。
基礎スキル①図形の数を数える方法
今回はシート上にあるすべての図形をグループ化していきます。
それを行うにあたって、まずはシート上に何個の図形(グラフ)があるのかを確認する必要があります。
というわけでその方法をご紹介します。
〇シート上の図形の数を数える方法
このスキルはのちほど紹介するサンプルコードに登場します。
基礎スキル②複数図形をグループ化する方法
次は複数の図形をグループ化する方法をご紹介します。
〇シート上の図形をグループ化する方法
※具体例(1番目と2番目の図形をグループ化する場合)
ActiveSheet.shapes.Range( Array(1, 2) ).Group
今回はシート上に図形が何個あるかわからない状態で実施しますので、上記のArray(1, 2)の部分をどうやって作っていくかがポイントになります。
⇒先ほどの図形を数えるスキルを使って対応していきます。
シート上の図形を一括グループ化するサンプルVBAコード
それではここまで紹介したスキルを使って、シート上の図形を一括グループ化してみましょう。
以下がそのサンプルコードです。
※このコードは図形が100個までしか対応していません。100個以上ある場合は、2行目の数値を増やしてください。
Sub shapes_group()
Dim shape_array(100) As Variant
'グループ化するための配列を作成
For i = 1 To ActiveSheet.shapes.Count
shape_array(i) = i
Next
'グループ化実行
ActiveSheet.shapes.Range(shape_array).Group
End Sub
4~6行目で図形を数えるスキルを使い、グループ化用配列を作成しています。
そして8行目でグループ化を実施しています。
サンプルコードの実行結果確認
それでは最後にサンプルコードを実行してみましょう。
まずはシンプルな図形だけがある場合。
問題なくグループ化できていますね。
次は、図形も含ませてみましょう。
同じコードを実行します。
こちらも問題なく対応できましたね。
おわりに
というわけで今回は、エクセルVBAをつかってシート上の図形を一括グループ化する方法をご紹介しました。
また以下の記事では、ここでグループ化した図形を画像として出力する方法も解説しています。
興味があればこちらもご覧ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント