目的別に探せる【PowerPoint逆引き辞典】公開中 ▶︎

テキストばらしPowerPoint版 1行ずつ分割するマクロ

スポンサーリンク

Illustratorのスクリプトでお馴染み「テキストばらし」のような処理ができるPowerPoint版マクロを作りました。

実行すると複数行のテキストボックスを1行ずつ分割してくれます。

Excelからコピーしたテキストをセルごとに分割するときにも便利です。

スポンサーリンク
スポンサーリンク

テキストを分割するマクロ

コード

Sub テキスト分割()
    
    Dim n As Long
    Dim nowTop As Single
    Dim nowLeft As Single
    
    '選択中のスライド番号を取得
    n = ActiveWindow.Selection.SlideRange.SlideIndex
    
    With ActiveWindow.Selection
  
        'テキストボックスが選択されていない場合はマクロ終了
        If .Type = ppSelectionNone _
        Or .Type = ppSelectionSlides Then
    
            MsgBox "テキストボックスを選択してください。"
            Exit Sub
      
        End If
    
        'テキスト編集モードの場合はシェイプを選択
        If .Type = ppSelectionText Then .ShapeRange.Select
    
        With .ShapeRange
            
            '現在の位置を代入
            nowTop = .Top
            nowLeft = .Left
            
            'テキストボックスをカット
            .Cut
        
        End With
    End With
    
    With ActivePresentation.Slides(n).Shapes
        
        '図 (拡張メタファイル)形式で貼り付け
        .PasteSpecial DataType:=2

    End With
    
    'グループ化を2回解除する
    ActiveWindow.Selection.ShapeRange.Ungroup.Select
    ActiveWindow.Selection.ShapeRange.Ungroup.Select

    With ActiveWindow.Selection

        '透明オブジェクトを削除
        .ShapeRange(1).Delete
        
        With .ShapeRange
        
            'テキストに合わせて図形のサイズを調整する
            .TextFrame.AutoSize = ppAutoSizeShapeToFitText
        
            'テキストをグループ化
            .Group
            
            '元の位置に移動
            .Top = nowTop
            .Left = nowLeft
            
            'テキストをグループ化解除
            .Ungroup
            
        End With
    End With
End Sub

実行結果

1行ずつ分割する

上図のように文字を改行で分けたテキストボックスを用意します。

マクロを実行すると1行ずつ分割されます。

  • 文字や記号の並びによって行の途中で分割される場合があります。
  • 縦書きには対応していません。

1文字ずつ分割する

1文字ずつ分けたい場合は文字と文字の間に半角スペースを挿入します。

マクロを実行すると1文字ずつ分割されます。

  • 半角スペースを境目にしてテキストボックスが分割されます。
  • 全角スペースで区切ってもOKです。

リボンにボタンを追加する

頻繁にマクロを実行する場合は、動画のようにアドインにしてリボンにテキスト分割のボタンを追加しておくと便利です。

次の投稿を参考に追加してみましょう!

PowerPointでマクロをアドイン化しリボンに追加する方法
PowerPointで複数のマクロをまとめてアドイン化し、リボンにマクロの実行ボタンを追加する方法を…