Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 文字列をWordに書き出すPowerPointマクロ

文字列をWordに書き出すPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

「powerpoint word 変換」
「パワーポイント ワードに変換」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあります。

PowerPointには、文字列をWordへ送るコマンドも用意されていますが、その結果が期待するものとは違っている場合に、VBA(Visual Basic for Applications)でマクロを作ってしまおうと考える方もいらっしゃるようです。

[スポンサードリンク]

文字列をWordに書き出すサンプルマクロ

細かな要望を入れていくと複雑なマクロになりますが、まずは、一番シンプルな形のPowerPointマクロをご紹介します。

Sub スライドの文字列をWordに出力する()

 Dim sld As Slide
 Dim shp As Shape
 
 Dim wd_app As Object
 Dim wd_doc As Object
 
 Set wd_app = CreateObject("Word.Application")
 wd_app.Visible = True
 Set wd_doc = wd_app.Documents.Add
   
 For Each sld In ActivePresentation.Slides
  For Each shp In sld.Shapes
    
   If shp.HasTextFrame Then
    wd_doc. _
     Bookmarks("\EndOfDoc").Range.InsertAfter _
      Text:=shp.TextFrame.TextRange
   End If
    
  Next shp
 Next sld
 
 Set wd_doc = Nothing
 Set wd_app = Nothing

End Sub

上記のPowerPointマクロを実行すると、Wordが起動して、スライド内の文字列がWordの新規文書に出力されます。

サンプルマクロの解説

WordをCreateObjectして、
 Set wd_app = CreateObject("Word.Application")

表示してから、
  wd_app.Visible = True

文字列をWordに書き出すPowerPointマクロ

新規のWord文書を挿入します。
  Set wd_doc = wd_app.Documents.Add

文字列をWordに書き出すPowerPointマクロ

PowerPointのアクティブなプレゼンテーションファイルの全スライドにループを回し、
 For Each sld In ActivePresentation.Slides

文字列をWordに書き出すPowerPointマクロ

その個々のスライドで、全図形に対してループを回して、
  For Each shp In sld.Shapes

文字列をWordに書き出すPowerPointマクロ

もしも図形に文字列が含まれていたら、
   If shp.HasTextFrame Then

文字列をWordに書き出すPowerPointマクロ

先に作成した新規のWord文書の末尾に文字列を出力しています。
    wd_doc. _
     Bookmarks("\EndOfDoc").Range.InsertAfter _
      Text:=shp.TextFrame.TextRange

Word文書の末尾の指定の仕方はいろいろありそうですが、ここでは、定義済みブックマークの「\EndOfDoc」をBookmarksプロパティの引数に指定する方法を使いました。

Bookmarksの引数に「\EndOfDoc」を指定することで、Bookmarkオブジェクトを取得して、

文字列をWordに書き出すPowerPointマクロ

BookmarkオブジェクトのRangeプロパティを使ってRangeオブジェクトを取得して、

文字列をWordに書き出すPowerPointマクロ

RangeオブジェクトのInsertAfterメソッドで、

文字列をWordに書き出すPowerPointマクロ

PowerPointのShape内のTextFrame内の、

文字列をWordに書き出すPowerPointマクロ

TextRange内の文字列を、

文字列をWordに書き出すPowerPointマクロ

Word文書の末尾に挿入しています。

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 文字列をWordに書き出すPowerPointマクロ

「TextFrame・TextRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.