PowerPointは、図形のサイズを変更するときに線幅と効果の値が連動しません。Illustratorでは、拡大縮小ツールの「線幅と効果も拡大縮小する」の設定で切り替えができます。
PowerPointで線幅と効果も図形と一緒に拡大縮小したい場合は、SVG形式に変換する必要があります。
通常のサイズ変更
下図のPowerPointで作ったマンガ肉(作り方を参照)をサイズを変更します。
肉と骨の輪郭に線幅、肉の陰影に効果の影を設定しています。
このマンガ肉を拡大すると線幅と影の値は元のままで、拡大すればするほど上図のように全体のサイズに対して線と影が細くなってしまいます。
そこで、線幅と効果も一緒に拡大縮小する方法をバージョンごとにご紹介します。
SVG形式でサイズ変更
PowerPoint 2019、Microsoft 365ならSVG形式に変換してサイズを変更します。
オブジェクトを「Ctrl + C」キーでコピーした状態で「Ctrl + Alt + V」キーを押し、「形式を選択して貼り付け」ダイアログボックスを開きます。
「貼り付ける形式」から「画像(SVG)」を選択し、「OK」をクリックします。
SVG形式に変換すると、線幅と効果が図形と一緒に拡大縮小します。
SVG形式に変換したオブジェクトは、グループ化を解除することで図形に戻せます。しかし、影などの効果を設定した部分が上図のように画像化されて分離してしまうので、変換前に元のオブジェクトをバックアップしておくのがおすすめです。
拡張メタファイル形式でサイズ変更
PowerPoint 2016なら拡張メタファイル形式に変換してサイズを変更します。
オブジェクトを「Ctrl + C」キーでコピーした状態で「Ctrl + Alt + V」キーを押し、「形式を選択して貼り付け」ダイアログボックスを開きます。
「貼り付ける形式」から「図(拡張メタファイル)」を選択し、「OK」をクリックします。
拡張メタファイル形式に変換すると、線幅と効果が図形と一緒に拡大縮小します。
- 拡張メタファイル形式に変換したオブジェクトはグループ化を解除することで図形に戻せます。しかし、ほとんど使い物にならない状態になるので、変換前に元のオブジェクトをバックアップしておくのがおすすめです。
マクロで線幅と効果をサイズ変更する
オブジェクトにサイズ変更後の縦サイズを指定するだけで、線幅と効果も一緒に拡大縮小してくれるマクロです。
コード
Sub 線幅と効果をサイズ変更する() Dim resizeNum As String Dim shp As Shape Dim col As New Collection Dim col_shp As Shape 'サイズ変更値を入力 resizeNum = InputBox("サイズ変更する高さを入力してください。" & vbCrLf & _ "(単位: cm)") '数値以外が入力された場合はマクロを終了 If IsNumeric(resizeNum) Then ElseIf resizeNum = "" Then Exit Sub Else msg = "数値を入力してください。" MsgBox msg Exit Sub End If 'サイズ変更値を「pt」に変換 resizeNum = Round(resizeNum * 720 / 25.4, 1) 'サイズ変更値を倍率に変換 resizeNum = resizeNum / ActiveWindow.Selection.ShapeRange.Height With ActiveWindow.Selection For Each shp In .ShapeRange '縦横比を固定 shp.LockAspectRatio = msoTrue '図形を拡大 shp.Height = shp.Height * resizeNum If shp.Type = msoGroup Then 'コレクションに要素を追加 col.Add shp Else '線幅があればサイズ変更 If shp.Line.Visible = msoTrue Then shp.Line.Weight = shp.Line.Weight * resizeNum End If '影があればサイズ変更 If shp.Shadow.Visible = msoTrue Then shp.Shadow.Blur = shp.Shadow.Blur * resizeNum shp.Shadow.OffsetX = shp.Shadow.OffsetX * resizeNum shp.Shadow.OffsetY = shp.Shadow.OffsetY * resizeNum End If '反射があればサイズ変更 If shp.Reflection.Type <> msoReflectionTypeNone Then shp.Reflection.Blur = shp.Reflection.Blur * resizeNum shp.Reflection.Offset = shp.Reflection.Offset * resizeNum End If '光彩があればサイズ変更 If shp.Glow.Radius > 0 Then shp.Glow.Radius = shp.Glow.Radius * resizeNum End If 'ぼかしがあればサイズ変更 If shp.SoftEdge.Type <> msoSoftEdgeTypeNone Then shp.SoftEdge.Radius = shp.SoftEdge.Radius * resizeNum End If End If Next End With Do While col.Count > 0 For Each col_shp In col For Each shp In col_shp.GroupItems If shp.Type = msoGroup Then 'コレクションに要素を追加 col.Add shp Else '線幅があればサイズ変更 If shp.Line.Visible = msoTrue Then shp.Line.Weight = shp.Line.Weight * resizeNum End If '影があればサイズ変更 If shp.Shadow.Visible = msoTrue Then shp.Shadow.Blur = shp.Shadow.Blur * resizeNum shp.Shadow.OffsetX = shp.Shadow.OffsetX * resizeNum shp.Shadow.OffsetY = shp.Shadow.OffsetY * resizeNum End If '反射があればサイズ変更 If shp.Reflection.Type <> msoReflectionTypeNone Then shp.Reflection.Blur = shp.Reflection.Blur * resizeNum shp.Reflection.Offset = shp.Reflection.Offset * resizeNum End If '光彩があればサイズ変更 If shp.Glow.Radius > 0 Then shp.Glow.Radius = shp.Glow.Radius * resizeNum End If 'ぼかしがあればサイズ変更 If shp.SoftEdge.Type <> msoSoftEdgeTypeNone Then shp.SoftEdge.Radius = shp.SoftEdge.Radius * resizeNum End If End If Next 'コレクションから要素を削除 col.Remove 1 Next Loop End Sub
実行結果
サイズを変更したいオブジェクトをグループ化した状態で選択します。作例のイラストのサイズは「高さ:3.2cm」「幅:6.4cm」「線幅:3pt」です。
オブジェクトを選択した状態で実行するとダイアログボックスが開くので、サイズを変更する高さを「cm」単位で入力して「OK」をクリックします。作例は「高さ:8cm」にしています。
高さを「3.2cm」の2.5倍の「8cm」に拡大したので、線幅も2.5倍になっていればOKです。線幅を確認すると「3pt」の2.5倍の「7.5pt」になっているので、オブジェクトに連動して線幅も拡大することができました。
影も同じように連動して拡大されています。サイズを変更できる効果は「影」だけでなく、「反射」「光彩」「ぼかし」にも対応しており、混在していてもOKです。

これは超便利!
「線幅と効果をサイズ変更するマクロ」で、パワポでもIllustratorのように気軽にサイズを変更できるようになりました。
パワポアートや複数の線幅が混在したオブジェクトなどのサイズを変更するときにも効果を発揮するでしょう。