![見出し画像](https://assets.st-note.com/production/uploads/images/29823559/rectangle_large_type_2_86085555170313695d1c71ab3c0d1148.png?width=1200)
角丸四角を一発調整!PowerPointVBA
柔らかい雰囲気を醸し出す、角丸四角。雰囲気を出してくれるのは良いけど、問題を抱える子でもあります。それは、
サイズを変えると角のサイズも変わる
「神は細部に宿る!」という精神で、細かい所に力を注ぎこむ方もおられるでしょう。たくさん入れた角丸四角の角を調整して、夜を明かした日々を経験しているかと思います。え?いない?そう。それが嫌で角丸四角を使うのを避けている方も多いかと思います。私もそうでした。でもね、変態のわたしはVBAを勉強し始めて思ったんですよ。
角丸くん、調整できない?
できたんです。これでもう、目視でちまちまと角丸四角の角を揃える作業とはおさらば!
あ、こんにちは。パワポ師のホリです。副業として資料作成をしながら、パワポで遊んでる人です。Twitterでは日々、パワポ/資料作成/思考などについて発信してるので良ければフォローしてください。
https://twitter.com/YuU_Holy
角丸四角を調整するVBAを作るときに考えた事
マクロデータの使い方
VBAを含んだデータは有料ですが、この後にコードを貼り付けておきます。是非使いたい!けど、VBEを開いて…とかする自信がない!という方は、ホリにコーヒーを恵んでください。もちろん、自分でもできるよ!って方はどうぞ、コピーして使ってください!そしてご意見をください!シェアしてくだ
実際に私が組んだVBAを動かす手順は以下の通りです。
Excelとは違い、使い方に癖があります。必ず、VBAコードが書かれているファイルを開いて、実行するようにしてください。アドインにしたりやり方は他にもありますけどね。
実際に使ってみる
面倒で手間がかかる!
— ホリ@ パワポ師 / 仕事を楽しむ「 資料術 」 (@YuU_Holy) July 4, 2020
その割にちゃんと揃えられない!
そんな「角丸四角の角を揃えるマクロ」の動きを動画にしてみました!
コードの公開はもうしばらくおまちください(´・ω・)
パワポにこんな機能あればいいな?って思う事、教えてください!#note pic.twitter.com/6beq04QX6k
VBAコード公開
最初に言い訳をしておきますが、私のVBAレベルは「調べてそれなりにできる程度」です。難しい処理はできません。もし、こうしたほうが良いよ!とかアドバイスがあれば欲しいです。あ、もちろん、データは問題なく動くことを確認しています。
Sub 角丸調整()
If Not ActiveWindow.Selection.Type = ppSelectionShapes Then Exit Sub
'コーナー設定値の入力
Dim corner As Double, Inp As Variant
Inp = InputBox("0~10の数値を入力してください。")
'角丸は短辺に対して0~0.5で設定
'わかりやすく0~10までとし、20で割った値を使用
If Inp = "" Then Exit Sub ' キャンセル時に終了
Dim Temp As Double
Temp = Inp / 20
Dim Shp As Shape
Dim ShpShort As Double '図形の短辺
Dim MinShp As Double '最小図形
'最小図形の短辺サイズを判定しMinShpへ代入
MinShp = 10000 '仮で大きな数値を代入
For Each Shp In ActiveWindow.Selection.ShapeRange
If Shp.AutoShapeType = msoShapeRoundedRectangle Then
ShpShort = IIf(Shp.Width < Shp.Height, Shp.Width, Shp.Height)
MinShp = IIf(MinShp < ShpShort, MinShp, ShpShort)
End If
Next
'最小図形のコーナーサイズを決定
corner = Temp * MinShp
'全図形に最小図形のコーナー比率を設定
For Each Shp In ActiveWindow.Selection.ShapeRange
If Shp.AutoShapeType = msoShapeRoundedRectangle Then
ShpShort = IIf(Shp.Width < Shp.Height, Shp.Width, Shp.Height)
Shp.Adjustments.Item(1) = corner / ShpShort
End If
Next
MsgBox ("完了しました")
End Sub
さいごに
いかがでしたでしょうか?これで角丸四角も手軽に気軽に使えるようになりましたね!パワポ、楽しんでいきましょう!
他にも、こんなことできないか?といったアイデアがあればご連絡ください!
マクロ有効データ
データの中には以下を含みます
VBAコード
本記事で使用している画像の元データ
有効活用してもらえると、嬉しいです!
ここから先は
¥ 100
自信を持てず、結果も評価も得られない会社員 でしたが、 ・自分の「楽しい」を創り、伸ばせば ・結果も評価も、「気持ち」も大きく変化 同じ悩みを持つ方へ価値を見つける手助けがしたい サポート頂けるとありがたいです! が、フォロー・拡散という形でも非常に喜びます!