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

文字列をWordに書き出すPowerPointマクロ-改行・改ページあり

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

スライド上の文字列をWordに出力するPowerPointマクロをご紹介しました。

このタイプのマクロは、要望がいろいろと出てくるものです。

前回ご紹介したマクロで、まず出てきそうな要望は、改行と改ページでしょう。

前回ご紹介したマクロは、Shape内の文字列を、ひたすらWord文書の末尾に出力し続けるという仕様でした。

このマクロをご覧になった方からは、Shapeごとに改行を入れたい、スライドごとに改ページを入れたいという要望がよく出てきます。

[スポンサードリンク]

文字列をWordに出力するサンプルマクロ

以下のようなマクロにすれば、Shapeごとに改行が、スライドごとに改ページが入るようになります。

Sub スライドの文字列をWordに出力する_改行改ページあり()

 Dim sld As Slide
 Dim shp As Shape
 Dim end_sld As Long

 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

 end_sld = ActivePresentation.Slides.Count

 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 & vbCrLf
   End If
  Next shp

  If sld.SlideIndex <> end_sld Then
   wd_doc. _
     Bookmarks("\EndOfDoc").Range.InsertBreak _
      Type:=7 ''7=wdPageBreak(改ページ)
  End If

 Next sld

 Set wd_doc = Nothing
 Set wd_app = Nothing

End Sub

基本的な構造は前回ご紹介したマクロと同じで、改行と改ページを入れる処理だけを追加しました。

Slideごとに改ページを入れる処理

スライドごとに改ページを入れる仕様にするときに、最後のスライドの後ろにだけは改ページを入れる必要はありませんから、スライド全体のループに入る前に、スライドの枚数を変数・end_sldに格納しておいて、
 end_sld = ActivePresentation.Slides.Count

スライド全体に対するループ処理の中で、最後のスライドでなければ改ページを挿入するようにしています。
  If sld.SlideIndex <> end_sld Then
   wd_doc. _
     Bookmarks("\EndOfDoc").Range.InsertBreak _
      Type:=7
  End If

PowerPoint側で参照設定をしなくても動作するマクロにするため、Range.InsertBreakメソッドの引数・Typeには、定数・wdPageBreakのリテラル「7」を指定しています。

文字列をWordに書き出すPowerPointマクロ-改行・改ページあり

Shapeごとに改行を入れる処理

図形ごとに改行を入れる処理は、前回のマクロを少し修正しただけです。

Word文書の末尾に文字列を出力するときに、改行コード・vbCrLfを一緒に出力するようにしています。
    wd_doc. _
     Bookmarks("\EndOfDoc").Range.InsertAfter _
      Text:=shp.TextFrame.TextRange & vbCrLf

関連語句
VBA, Visual Basic for Applications
[スポンサードリンク]

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

「TextFrame・TextRange」の記事一覧

検索


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

.