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でマクロをアドイン化しリボンに追加する方法
PowerPointで複数のマクロをまとめてアドイン化し、リボンにマクロの実行ボタンを追加する方法を…
テキストボックスを連結する
テキストボックスをバラバラにしたい場合もあれば、連結したい場合もあります。バラバラのテキストボックスを1つに連結するマクロもご用意しました。
詳細は、次の記事で解説しています。
【パワポVBA】バラバラのテキストボックスを1つに連結するマクロ
【パワポVBA】バラバラのテキストボックスを1つに連結するマクロ
PowerPoint VBAを使い、バラバラのテキストボックスを1つに連結するマクロをご紹介します。…