おすすめパワポ本12選!プロから学ぶ資料作成術

PowerPoint VBA フォントをアウトライン化するマクロ

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」メソッドが使用できないため、コンパイルエラーになります。