「Excel Tips」ではExcelを使用していて気付いたことを取り上げています。
今回はExcelの標準図形に設定されている正方形/長方形(Rectangle)の結合点(接続点)(上下左右の4箇所)を増やすための1つの方法として図形をグループ化するやり方をご紹介いたします。
Googleで「Excel 図形 結合点」を検索するとMicrosoft Visioでの追加方法が検索上位に表示されるのですが、(恐らくAIによって作られる)「関連する質問」の中にExcelでもできるように表示されることがあります…でも残念ながらExcelにはそのような機能は実装されていません。
そのため少し下手なやり方ではありますが、標準図形のグループ化で結合点を増やす方法をご説明いたします。
※動作は32bit版Excel 2016と64bit版Excel 2021の バージョン2405(ビルド 17628.20144)を使用して検証しています。
すべての標準図形の結合点を調べてみた
実は以前下記の記事で結合点の順番について確認をしていますので、すべての標準図形にどのような結合点が設定されているのか?は調査をしています。
結果として、AddShapeメソッドにより描画できる標準図形の結合点(Shape.ConnectionSiteCountプロパティ)は0~16箇所になることは分かっています。
ただ、それの中で結合点の多い標準図形をそのまま正方形/長方形(Rectangle)と重ね合わせて結合点を増やすために使えるか?というと、それは「そのままで使える」ものはないという結論です。
その理由としては、正方形/長方形(Rectangle)の結合点としてつぎのような事が期待されるからです。
- それぞれの辺で、結合点が等間隔に並んでいて欲しい。
次の章で、どのように標準図形をグループ化して結合点を増やせば良いか?を考えて行きます。
標準図形を潰して結合点に利用する
そのままでは向かないとすると、かなり姑息なやり方にはなりますが、標準図形を潰して線にして結合点に利用することができないか?調べて見る事にします。
標準図形の形状から、「縦に潰す」か「横に潰す」かで結合点の配置は変わってくる場合があります。
一番結合点が多い標準図形は「星: 16」になりますが、実はこれを高さを”0″に潰すと9箇所の結合点になる事が分かります。
ただし、残念ながら結合点は等間隔に並んでいないので前章で上げた条件に一致していません。
結合点が多く等間隔になりそうな標準図形をいくつか試して見る
結合点が6箇所ある二等辺三角形(Isosceles Triangle)ですが…
これは高さを”0″に潰すと結合点は5箇所になります。もともと6箇所の結合点が潰しても5箇所になり、また等間隔に並びますので、非常に適しています。
ただし幅を”0″に潰すと結合点は3箇所に減少します。
最終的に、二等辺三角形の高さを”0″に潰した結合点5箇所は等間隔では一番数が多い標準図形になりそうである事が分かりました。
またアーチ(Block Arc)を高さを”0″に潰した結合点3箇所はもともとの結合点と変わらないのが特質すべき点です。
※すべての標準図形を確認した分けではありませんので、お含み置きください。
どのように組み合わせて使うか?は必要な結合点の数次第
結合点を線で設定する事ができるので、後はどのようにそれを組み合わせてグループ化するか?になります。
二等辺三角形の高さを”0″に潰した結合点5箇所は等間隔だけを使用した場合、4隅は上と左、下と左、下と右、上と右で結合しても矢印コネクタ(Connector)は混じり合わないので、短辺はフルに、長辺は一間隔空けて配置すると24箇所の結合点を設定する事が可能です。
なお、これでもしも足りない場合は、三角形とアーチを組み合わせて必要な分だけ結合点を設定することができます。
グループ化の一例
まず最初に線状態にした二等辺三角形の「図形の書式設定」ですが、なるべく情報が少なくなるようにするために、つぎのような設定をしています。
- 「図形のオプション」の「塗りつぶし」は「塗りつぶしなし」に、また「線」は「線なし」に設定します。
- 「文字のオプション」の「文字の塗りつぶし」は「塗りつぶしなし」に、また「文字の輪郭」は「線なし」に設定します。
- それ以外はデフォルト値のままにして、特段の設定はしないようにします。
その上で、グループ化をするためにつぎのような操作を実行します。
正方形/長方形(Rectangle)のそれぞれの辺に重なるように、高さ”0″に潰した二等辺三角形をセットします。短辺のところは、線にした二等辺三角形を90°回転させて設定します。
なおこの時にあまり辺の真上に線を配置するよりも、微妙にずらして方がの結合点にコネクタを結び付ける時に都合が良いです。
というのも、コネクタを結合点に近づけた時にExcelが感知して結合点を浮き上がらせてくれるのですが、あまりに真上だと正方形/長方形(Rectangle)の結合点と線の結合点の切り替えのためのマウスコントロールが微妙になるためです。
グループ化した二等辺三角形と正方形/長方形(Rectangle)を選択したら、まずメニュータブの「図形の書式」→配置グループの「配置」→「左右中央揃え」をクリックします。
そうすると左図のような状態になりますので、つぎに同じように「配置」→「 上下中央揃え」をします。
この状態でグループ化した二等辺三角形と正方形/長方形(Rectangle)をグループ化します。
グループ化した図形を使用する際の注意点
なおグループ化した図形を使用する際の注意点は下記のようになります。
グループ化しているので、正方形/長方形(Rectangle)のテキスト編集をするには2回クリックして正方形/長方形(Rectangle)にフォーカスが当たるようにする必要があります。
なお上記以外でも、そもそものグループ化した図形の弱点として、グループ化した子図形にフォーカスを当てて移動させる事はできてしまいます。
このようにグループ化した図形がずれてしまった時は、慌てずに「元に戻す」ボタンをクリックすれば大丈夫です。
正方形/長方形を4つの二等辺三角形でグループ化して重くならないか?
結合点を増やすためだけに、1つの正方形/長方形に4つの二等辺三角形がぶら下がって動きが緩慢にならないか?は心配される点です。
ただ実際にやってみると体感的には遅さは感じられませんでした。
左図は二等辺三角形よりも数が多くなるようにアーチ(Block Arc)を8箇所に配置した例になります。
これを200個貼り付けて動かしたところ特に動きが遅いという感じはありませんでした。
※都合200×9=1,800図形が1つのシート上にある計算になります。
おそらく、矢印コネクタ(Connector)を沢山描画しても重くならないのと同じような理由では?と思われます。
まとめ
今回は、もともと4箇所しか結合点のない正方形/長方形(Rectangle)の結合点を増やすにはどうしたら良いか?という課題に対して、二等辺三角形(Isosceles Triangle)やアーチ(Block Arc)を高さ”0″に潰して線にして、正方形/長方形(Rectangle)の辺に合わせて配置し、グループ化するやり方をご紹介しました。
下手なやり方ではありますが、一つの結合点にコネクタをまとめて結合するよりも、見た目上もメンテナンス性からもベターなのではないか?と思います。
是非一度試して見ていただければ幸いです。
余談にはなりますが、グループ化した図形を貼り付けていたった時に、図形の最後に付番される番号がどのように付けられているか?気になった事はないでしょうか?
次回はこのあたりにまつわるTipsを話題にする予定です。
以上最後までご一読いただき誠にありがとうございました。