
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のように気軽にサイズを変更できるようになりました。
パワポアートや複数の線幅が混在したオブジェクトなどのサイズを変更するときにも効果を発揮するでしょう。






















