PowerPointVBAを使用することでスライドに散乱している図形を一発で揃えることができます。
この記事を読むことで、次の動画のようなことができるようになります。
また、プログラムを詳しくわかりやすく解説していますので、プログラムを理解することで自由に変更を加え、応用させることによってさまざまな場面で時短できるようになります。
ではいってみましょう。
図形の大きさと位置を揃えるプログラム
こちらのコードは1枚目のスライド内にある図形のを一定の幅に設定し、横に最大5個ずつならべます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Sub imgResizeReplace() ' ループカウンタ cnt = 0 ' 1枚目のスライドの図形をループ For Each shp In ActivePresentation.Slides(1).Shapes ' shp文字を省略 With shp ' 幅を設定(※ここを自由に変更してください) .Width = 180 ' 図形の左端からの距離 .Left = 190 * (cnt Mod 5) ' 図形の上端からの距離 .Top = 180 * (cnt \ 5) End With ' カウンタを1つ増やす cnt = cnt + 1 Next shp End Sub |
コードの解説
‘ ループカウンタ
cnt = 0
図形のサイズや位置を変更した枚数をカウントするための変数 cnt を用意しています。
‘ 1枚目のスライドの図形をループ
For Each shp In ActivePresentation.Slides(1).Shapes
1枚目のスライドの全図形を1つずつ取り出して shp という変数に入れています。
これにより、1つずつ図形の幅、位置を設定することができます。
‘ shp文字を省略
With shp
With を使用することで、変数の省略ができるようにしています。
‘ 幅を設定(※ここを自由に変更してください)
.Width = 180
‘ 図形の左端からの距離
.Left = 190 * (cnt Mod 5)
‘ 図形の上端からの距離
.Top = 180 * (cnt \ 5)
.Width では図形の幅を指定しています。With を使用しているため shp が省略されていますが、shp.Widthと同じ意味です。
.Left ではスライドの左端からの位置を指定しています。
.Top ではスライドの上端からの位置を指定しています。
スライドの左からの位置は次の画像のように配置しています。
ある枚目から図形を 再度左端から 配置したい場合、割り算の余りを使うことで実現できます。
スライドの上から位置は次の画像のように配置しています。
ある枚数から図形を 1段下に配置 したい場合は割り算の商を使うことで実現できます。
‘ カウンタを1つ増やす
cnt = cnt + 1
図形のサイズと位置を設定したらカウンタを増やして次の図形の位置の計算に使用します。
実行結果
では実行してみましょう!
うまく並べることができました!
さいごに
いかがだったでしょうか。
今回は図形を綺麗に並べる方法をご紹介しました。
プログラムの数値を変更して皆さんの業務に合うようにカスタマイズしてみてください!
今後もみなさんの業務を時短できそうなプログラムを作成していきますので、よろしくお願いいたします。
コメント