VBAでPowerPointへテキストボックスを追加し文字を入力したいときはないでしょうか。
けど、そんな中で悩むことは、
・VBAでPowerPointへ既存のテキストボックスにある文字を変更する方法がわからない
ですよね。
今回はそんなお悩みを解決する
・Excel VBAでPowerPointの既存テキストボックス内の文字を変更する方法
についてまとめます!
もくじ
Excel VBAでPowerPointへテキストボックスを追加し文字を入力するイメージ
Excel VBAでPowerPointへテキストボックスを追加し文字を入力するイメージについて説明をします。
PowerPointへ入力したい文字を用意します。例えばスライドタイトルや見出しなどです。
転記したいパワーポイントのファイル名とパスをメモします。
台帳となるExcelシートを用意し先ほどの文字列とパワーポイントへのパスを入力し、挿入したいスライド番号を指定します。
マクロを実行すると、
各文字列が指定されたパワーポイントのページへ貼り付けられます!
貼り付けたい文字列が大量にあるとき便利ですね!
それでは早速実装してためしてみましょう!
Excel VBAでPowerPointへテキストボックスを追加し文字を入力するための下準備
Excel VBAでPowerPointへテキストボックスを追加し文字を入力するための下準備をしていきましょう。
パワーポイントファイルを準備する
パワーポイントファイルを準備しましょう。
サンプルでは3スライド使いますので、3スライドのファイルを用意しました。
Excel台帳ファイルを準備する
文字列の転記先とパワーポイントのパスを記載する台帳を用意します。
各セルの構成は以下の通りです。
C1セルには文字を転記したいパワーポイントのファイルのパスを入れます。
C1 |
---|
パワーポイントのファイルのパス |
4列目以降にパワーポイントに文字挿入をしたい内容を入れていきます。
次に埋め込み先となるパワーポイントのスライド番号を指定します。
A列 | B列 | C列 | D列 |
---|---|---|---|
スライド番号 | タイトル | 見出し | 本文 |
Excelからパワーポイントを操作できるよう設定する
ExcelからパワーポイントをVBAで操作できるよう設定をしていきましょう。
①Excelを起動し、「開発」タブをクリックします。
②VBEの画面が開いたら、メニューから「ツール」>「参照設定」を選択します。
③「Microsoft PowerPoint XX.X Object Library」を探してチェックボックスにチェックし「OK」をクリックします。
Excel VBAでPowerPointへテキストボックスを追加し文字を入力する方法
サンプルコード
Excel VBAでPowerPointへテキストボックスを追加し文字を入力するサンプルコードは以下の通りです。
Sub パワーポイントへExcelの文字列を挿入する()
Dim objPPTApp As PowerPoint.Application
Dim objPPTPres As PowerPoint.Presentation
Dim objPPTSlide As PowerPoint.slide
Dim objPPTShape As PowerPoint.Shape
Dim intlastRow As Integer
Dim i As Integer
Dim micount As Integer
Dim cocount As Integer
'PowerPointアプリケーションをセットします。
Set objPPTApp = CreateObject("PowerPoint.Application")
'Excelの最初のシートを参照します。
With ThisWorkbook.Sheets(1)
' PowerPointのファイルパスを取得します。
Set objPPTPres = objPPTApp.Presentations.Open(.Cells(1, 3).Value)
'列の最終行を取得します。
intlastRow = .Cells(Rows.count, 1).SpecialCells(xlLastCell).row
'Excelシートの各行に対して処理を行います。
For i = 4 To intlastRow
If .Cells(i, 2).Value <> "" Then
'見出しカウント初期化
micount = 0
cocount = 0
' パワーポイントのスライドを取得します。
Set objPPTSlide = objPPTPres.Slides(.Cells(i, 1).Value)
' タイトルを追加します。
Set objPPTShape = objPPTSlide.Shapes.Title
objPPTShape.TextFrame.TextRange.text = .Cells(i, 2).Value
End If
'見出しの処理です。
If .Cells(i, 3).Value <> "" Then
'見出しの数をカウントします。
micount = micount + 1
'テキストボックスを追加します。
Set objPPTShape = objPPTSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 90, 120 * micount, 700, 50)
'テキストボックスに文字を追加します。
objPPTShape.TextFrame.TextRange.text = .Cells(i, 3).Value
'文字を太字にします。
objPPTShape.TextEffect.FontBold = True
'フォントサイズを変更します。
objPPTShape.TextEffect.FontSize = 24
End If
'本文の処理です。
If .Cells(i, 4).Value <> "" Then
'本文の数をカウントします。
cocount = cocount + 1
'テキストボックスを追加します。
Set objPPTShape = objPPTSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 110, (120 * cocount) + 40, 700, 50)
'テキストボックスに文字を追加します。
objPPTShape.TextFrame.TextRange.text = .Cells(i, 4).Value
'フォントサイズを変更します。
objPPTShape.TextFrame.TextRange.Font.Size = 24
End If
Next i
End With
Set objPPTApp = Nothing
Set objPPTPres = Nothing
Set objPPTSlide = Nothing
Set objPPTShape = Nothing
MsgBox "パワーポイントへ文字列を貼り付けました!" & Chr(10) & "OKであれば保存してください。"
End Sub
VBAの実装
VBAの実装方法については
VBAの実装手順
をご参照ください。
実行する
VBAを実行しましょう。
「パワーポイントへ文字列を貼り付けました!OKであれば保存してください。」が表示されたら完了です。
パワーポイントをみてみましょう。
はい!パワーポイントへ文字列が貼り付けられましたね!
Excel VBAでPowerPointへテキストボックスを追加し文字を入力するVBAの説明
Excel VBAでPowerPointへテキストボックスを追加し文字を入力するVBAについて説明をします。
PowerPointアプリケーションをセットします。
Set objPPTApp = CreateObject("PowerPoint.Application")
Excelの最初のシートを参照します。
With ThisWorkbook.Sheets(1)
PowerPointのファイルパスを取得します。
Set objPPTPres = objPPTApp.Presentations.Open(.Cells(1, 3).Value)
列の最終行を取得します。
intlastRow = .Cells(Rows.count, 1).SpecialCells(xlLastCell).row
Excelシートの各行に対して処理を行います。
For i = 4 To intlastRow
見出し本文のカウントを初期化します。
micount = 0
cocount = 0
パワーポイントのスライドを取得します。
Set objPPTSlide = objPPTPres.Slides(.Cells(i, 1).Value)
タイトルを追加します。
Set objPPTShape = objPPTSlide.Shapes.Title
タイトルに文字を追加します。
objPPTShape.TextFrame.TextRange.text = .Cells(i, 2).Value
見出しの処理です。見出しの文字列があれば処理を開始します。
If .Cells(i, 3).Value <> "" Then
見出しの数をカウントします。
micount = micount + 1
テキストボックスを追加します。
Set objPPTShape = objPPTSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 90, 120 * micount, 700, 50)
テキストボックスに文字を追加します。
objPPTShape.TextFrame.TextRange.text = .Cells(i, 3).Value
文字を太字にします。
objPPTShape.TextEffect.FontBold = True
フォントサイズを変更します。
objPPTShape.TextEffect.FontSize = 24
本文の処理です。本文の文字列があれば処理を開始します。
If .Cells(i, 4).Value <> "" Then
本文の数をカウントします。
cocount = cocount + 1
テキストボックスを追加します。
Set objPPTShape = objPPTSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, 110, (120 * cocount) + 40, 700, 50)
テキストボックスに文字を追加します。
objPPTShape.TextFrame.TextRange.text = .Cells(i, 4).Value
フォントサイズを変更します。
objPPTShape.TextFrame.TextRange.Font.Size = 24
Excel VBAでPowerPointの既存テキストボックス内の文字を変更する方法
Excel VBAでPowerPointの既存テキストボックス内の文字を変更する方法について説明をします。
前回と同じコードを使います。
パワーポイントの3スライド目のタイトルを変更対象とします。
タイトルに何か文字列がある状態にします。
Excel台帳側で既存文字列があるスライド番号と変更したいタイトル名を入力します。
VBAを実行しましょう。
はい、指定したスライドのタイトルが変更されていますね!
VBAの実装手順
実装手順は以下の通りです。
Excel側にVBAを実装していきます。
①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。
②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。
③右ペインのウインドウに上記のVBAを入力します。
こちらで完了です。
VBAを実行する
では早速VBAの実行をしてみましょう。
①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。
②処理がされたことが確認できれば完了です。
さいごに
いかがでしょうか。
今回は、
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す