Excel VBAでPowerPointへテキストボックスを追加し文字入力する方法!既存文字変更も!

Excel VBAでPowerPointへテキストボックスを追加し文字入力する方法!既存文字変更も!

VBAでPowerPointへテキストボックスを追加し文字を入力したいときはないでしょうか。

けど、そんな中で悩むことは、

・VBAでPowerPointへテキストボックスを追加し文字を入力する方法がわからない
・VBAでPowerPointへ既存のテキストボックスにある文字を変更する方法がわからない

ですよね。

今回はそんなお悩みを解決する

・Excel 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」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

・VBAでパワーポイントにエクセル文字列を位置調整した上貼り付ける方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です