Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表に行を追加・挿入するPowerPointマクロ

表に行を追加・挿入するPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

「powerpoint vba 表 挿入 行」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

表に行を挿入・追加するPowerPoint VBA(Visual Basic for Applications)のコードを探している方による検索です。

「powerpoint vba 表 挿入 行」
という検索キーワードだけでは、どの表の、どこに行を追加したいのかがわかりませんので、ここでは参考になりそうなマクロをいくつかご紹介しておきます。

[スポンサードリンク]

選択されている表に行を追加するサンプルマクロ

一つ目は、行を追加したい表を事前に選択しておいてから実行するマクロです。


Sub 選択されている表に行を追加する()

 Dim msg As String

 With ActiveWindow.Selection

  If .Type = ppSelectionNone _
  Or .Type = ppSelectionSlides Then
   msg = "表を選択してください。"
   MsgBox msg
   Exit Sub
  End If

  If .ShapeRange.HasTable Then
   .ShapeRange.Table.Rows.Add
  Else
   msg = "表を選択してください。"
   MsgBox msg
  End If

 End With

End Sub

上記のマクロを実行すると、選択されている表の、最終行の下に行が追加されます。

実際に行を追加しているのは、最後のIf文の中の、
 .ShapeRange.Table.Rows.Add
の部分です。

With句の中にありますから、
 .ShapeRange.Table.Rows.Add
というコードは実際のところ、
 ActiveWindow.Selection.ShapeRange.Table.Rows.Add
です。

RowsオブジェクトのAddメソッドに引数を指定しない場合は表の最後に行が追加され、行番号に該当する数値を引数に指定すれば、指定された行の前に行が挿入されます。

表が選択されていないときにTableプロパティを利用すると実行時エラーが発生するので、事前に選択されているShapeにテーブルが存在しているかどうかをHasTableプロパティで調べています。
  If .ShapeRange.HasTable Then

それ以前に、Shapeが選択されていない場合も実行時エラーが発生してしまうので、最低限Shapeが選択されているかをチェックしています。
  If .Type = ppSelectionNone _
  Or .Type = ppSelectionSlides Then
   msg = "表を選択してください。"
   MsgBox msg
   Exit Sub

アクティブスライドの表に行を追加するサンプルマクロ

二つ目は、アクティブなスライド上にあるすべての表に行を追加するマクロです。


Sub アクティブスライドのすべての表に行を追加する()

 Dim shp As Shape

 For Each shp In _
 ActiveWindow.Selection.SlideRange.Shapes

  With shp
   If .HasTable Then .Table.Rows.Add
  End With

 Next shp

End Sub

アクティブなスライド上のすべてのShapeにループを回して、
 For Each shp In _
 ActiveWindow.Selection.SlideRange.Shapes

もし表が存在していれば、TableオブジェクトのRowsオブジェクトのAddメソッドで行を追加しています。
  With shp
   If .HasTable Then .Table.Rows.Add

アクティブなプレゼンテーションファイルのすべての表に行を追加するサンプルマクロ

三つ目は、アクティブなプレゼンテーションファイル上にあるすべての表に行を追加するマクロです。


Sub アクティブプレゼンテーションのすべての表に行を追加する()

 Dim sld As Slide
 Dim shp As Shape

 For Each sld In ActivePresentation.Slides
  For Each shp In sld.Shapes

   With shp
    If .HasTable Then .Table.Rows.Add
   End With

  Next shp
 Next sld

End Sub

アクティブなプレゼンファイル上の、全Slideにループを回して、
 For Each sld In ActivePresentation.Slides

更にそのループの中で、各スライドの全Shapeにループを回し、
  For Each shp In sld.Shapes

もし表が存在していたら、行を追加しています。
   With shp
    If .HasTable Then .Table.Rows.Add

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表に行を追加・挿入するPowerPointマクロ

TrackBack:0

TrackBack URL

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表に行を追加・挿入するPowerPointマクロ

「表・テーブル」の記事一覧

検索


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

.