PowerPointでフォント(文字)をアウトライン化する方法は、以前の投稿でご紹介しました。

PowerPointで文字(フォント)をアウトライン化する方法
PowerPointで文字(フォント)をアウトライン化する方法をご紹介します。文字をパスデータにする…
アウトライン化のために、文字を複製してから接合する流れがスムーズではなかったので、一瞬でフォントをアウトライン化する夢のマクロを作成しました。Illustratorのように、ボタンひとつでアウトライン化ができます。
この記事の目次
フォントをアウトライン化するマクロ
コード
Sub アウトラインを作成() Dim n As Long Dim clr As Long '選択中のスライド番号を取得 n = ActiveWindow.Selection.SlideRange.SlideIndex With ActiveWindow.Selection 'オブジェクトが選択されていない場合はマクロ終了 If .Type = ppSelectionNone _ Or .Type = ppSelectionSlides Then 'メッセージ MsgBox "オブジェクトを選択してください。" Exit Sub End If With .ShapeRange 'テキストボックスまたは図形の場合 If .Type = msoTextBox _ Or .Type = msoAutoShape Then 'テキストが入力されていない場合 If .TextFrame.TextRange.Text = "" Then 'メッセージ MsgBox "テキストが入力されていません。" Exit Sub Else '図形の塗りと線をなしにする .Fill.Visible = msoFalse .Line.Visible = msoFalse End If Else 'メッセージ MsgBox "テキストを選択してください。" Exit Sub End If End With With .ShapeRange 'テキストボックスの名前 .Name = "txt" '文字の色 clr = .TextFrame.TextRange.Font.Color End With End With With ActivePresentation '図形を作成 Set shp = .Slides(n).Shapes.AddShape( _ msoShapeRectangle, 0, 0, 0, 0) '図形の名前 shp.Name = "shp" '図形の色 shp.Fill.ForeColor.RGB = clr '線なし shp.Line.Visible = msoFalse End With 'テキストボックスと図形を接合 ActivePresentation.Slides(n).Shapes.Range(Array("txt", "shp")).MergeShapes (msoMergeUnion) End Sub
実行方法
- 文字が入力されたテキストボックスをひとつ選択した状態で実行します。複数のテキストボックスには対応していません。
- 文字の色は、一色に対応しています。色が混在していると黒色になります。
- 線の設定は消えます。
- 文字に図形のオプションの「塗りつぶし」と「線」が設定されていると、図形の情報が優先され、文字が消えてしまうため、図形の「塗りつぶし」と「線」を削除する処理にしています。
実行結果
マクロを実行して、アウトライン化されたのか確認してみましょう。
マクロを実行した文字を右クリックしてメニューを開き、「頂点の編集」をクリックします。
パス化され、アウトライン化されたのが確認できました。

ほんとに、フォントが一瞬でアウトライン化されました!
- PowerPoint 2016 for Macでは「MergeShapes」メソッドが使用できないため、コンパイルエラーになります。