「powerpoint vba テキストボックスの挿入」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
テキストボックスを挿入・作成するPowerPoint VBA(Visual Basic for Applications)のコードを探している方による検索です。
この検索だけでは詳細がわかりませんので、参考になりそうなマクロをご紹介しておきましょう。
テキストボックスをまとめて作成するサンプルマクロ
複数のスライドにテキストボックスを一括作成するマクロです。
すべてのスライドに同じ文字を表示するテキストボックスを作成したいのなら、もちろん、個々のスライドに作成するのではなくマスターを利用すべきです。
ですから今回は、全スライドではなく、アクティブなスライドから後ろのスライドに、まとめてテキストボックスを挿入するマクロにしました。
Dim n As Long
Dim i As Long
Dim txt As Shape
If MsgBox("アクティブスライドから後ろのスライドにテキストボックスを挿入しますか?", vbYesNo) = vbNo Then Exit Sub
n = ActiveWindow.Selection.SlideRange.SlideIndex
With ActivePresentation
For i = n To .Slides.Count
Set txt = .Slides(i).Shapes.AddTextbox( _
Orientation:=msoTextOrientationHorizontal, _
Left:=0, _
Top:=0, _
Width:=250, _
Height:=10)
With txt
.Name = "AddedTextBox"
.TextFrame.TextRange = "サンプル"
.TextEffect.FontSize = 20
End With
Next i
End With
上記のマクロを実行すると、
「アクティブスライドから後ろのスライドにテキストボックスを挿入しますか?」
とメッセージが表示され[はい]ボタンを押すと、一気にテキストボックスが挿入されます。
サンプルマクロの解説
変数・nにアクティブなスライドのスライド番号を格納しておいてから、
n = ActiveWindow.Selection.SlideRange.SlideIndex
アクティブなプレゼンテーションファイルの、アクティブスライドから後ろのスライドにループ処理を開始します。
With ActivePresentation
For i = n To .Slides.Count
横幅250ポイント、高さ30ポイントの横書きのテキストボックスを、スライドの左上に挿入して、Shape型のオブジェクト変数・txtに格納します。
Set txt = .Slides(i).Shapes.AddTextbox( _
Orientation:=msoTextOrientationHorizontal, _
Left:=0, _
Top:=0, _
Width:=250, _
Height:=30)
ここが、
「powerpoint vba テキストボックスの挿入」
という検索をした方の一番知りたかった部分でしょうか。
ShapesコレクションオブジェクトのAddTextboxメソッドで、
テキストボックスを挿入することができます。
Shapes.AddTextboxメソッドで指定する引数Orientation・Left・Top・Width・Heightは、名前から何を指定しているかわかるでしょう。Left・Top・Width・Heightの単位はポイントです。
テキストボックスを挿入後、その挿入したテキストボックスに「サンプル」という文字列を書き出し、フォントサイズを20ポイントに設定して、名前を「AddedTextBox」に設定しています。
With txt
.TextFrame.TextRange = "サンプル"
.TextEffect.FontSize = 20
.Name = "AddedTextBox"
End With
名前は設定しなくてもいいといえばいいのですが、このマクロで作成したテキストボックスをまとめてマクロで削除したいという要望が出ることを考えると、名前を付けておくほうが便利なので、Nameプロパティで名前を指定しています。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » テキストボックスをまとめて作成するPowerPointマクロ