[EXCEL] 角丸四角形シェイプのコーナーRをミリ指定する
EXCELで挿入できる図形に角丸四角形というものがあります。
その名の通り角を丸くできる四角の枠です。
この図形のカドの丸みの大きさは、左上に付いている黄色いマークをドラッグすることで変更可能です。
この丸みは通常数値指定できないため、この枠をいくつも作った場合はなんとなく見た目で合わせることになります。
ただし、この丸みは図形のサイズを変更した時に勝手に大きくなったり小さくなったりします。
そのため、色々な大きさの角丸四角形を置いた場合、丸みの大きさがちぐはぐになり、同じ丸みにしたい場合は、合わせるのに苦労します。
というわけで、VBAを使って、コーナーRをあわせる関数を作りました。
丸みを数値で設定するのは1つの既存関数(Adjustments)を実行するだけでできるのですが、サイズの指定がボックスのサイズに対する相対値(比率?)なので、とても分かりにくいです。
そのため、この関数では、丸みをmmサイズで指定できるようにしています。
Option Explicit ' 角丸四角形のRを固定値指定する ' Sub ChangeCornerR() Dim currentR As Double Dim shapeSize As Integer Dim afterR As Double Dim afterRpt As Double Dim afterRmm As Double Dim sp As Shape Dim result As Double '変更後のコーナーR(mm) afterRmm = 5 For Each sp In Selection.ShapeRange '角丸四角形の縦横短い方長さを取得する(pt) shapeSize = WorksheetFunction.Min(sp.Width, sp.Height) '[参考]現時点の半径(mm) 'currentR = shapeSize * sp.Adjustments.Item(1) / 2.835 '変更後の半径指定をmmからptに換算 afterRpt = afterRmm * 2.835 '指定された数値が短い辺の半分以上だったら短い辺の半分に修正 If afterRpt > shapeSize / 2 Then afterRpt = shapeSize / 2 result = afterRpt / shapeSize sp.Adjustments.Item(1) = result Next End Sub
予め対象の図形を選択(1つ/複数)しておいて、この関数を実行すると、コーナーRが一括で設定されます。
事前に関数内の、afterRmm 値を指定しておいて下さい。
プログラムで設定するので、丸みは全て統一できます。
この関数で設定しても再度図形のサイズを変更した場合は、また丸みの大きさが変わってしまうので、図形の大きさが確定してからこの関数を実行すれば良いと思います。
== ランキングに参加しています。ぜひクリックお願いします ==
IE6~11に脆弱性見つかる [IE] ローカルに置いたHTMLを開いた時に表示される警告ダイアログを非表示にする