Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » PowerPoint VBAで表の列を削除する

PowerPoint VBAで表の列を削除する

動作検証バージョン:64bit Windows 10 Pro + 32bit PowerPoint(バージョン1910 ビルド12130.20344 Microsoft Store)

「PPT 列の削除 マクロ」
という検索キーワードでのアクセスに気が付きました。

PowerPoint VBAで表の列を削除するには、どのようなコードを書けばいいのかを探していらしたのでしょうか。

[スポンサードリンク]

先頭スライドに存在する表の1列目を削除するサンプル

以下のようなSubプロシージャで、アクティブなプレゼンテーションの先頭スライドに存在する表の1列目を削除できます。

Sub 先頭スライド内の表の1列目を削除する()
 With ActivePresentation.Slides(1).Shapes(2)
  If .HasTable Then
   .Table.Columns(1).Delete
  End If
 End With
End Sub

一般的なレイアウトのスライドでは2つ目の図形内に表が存在するので、ここでは「.Shapes(2)」と指定しています。
  With ActivePresentation.Slides(1).Shapes(2)

先頭スライドの2つ目の図形に表が存在するかをShape.HasTableプロパティで確認して、
  If .HasTable Then

ColumnオブジェクトのDeleteメソッドで1列目を削除しています。
   .Table.Columns(1).Delete

オブジェクトの階層構造を理解しましょう

PowerPoint VBAのオブジェクトは、イレギュラーな部分の多いExcel VBAよりも理解しやすいと私は感じていますが、如何せん階層が深い点がネックです。

上記のSubプロシージャの場合、
 Presentations/Presentation
  └ Slides/Slide
    └ Shapes/Shape
      └ Table
        └ Columns/Column
という階層構造を理解する必要があります。

表を含む図形を取得する
 Presentations/Presentation
  └ Slides/Slide
    └ Shapes/Shape
の部分は、PowerPoint VBAではお馴染みの階層構造です。

Shapeオブジェクトが持つTableプロパティで、表を表すTableオブジェクトを取得して、
 With ActivePresentation.Slides(1).Shapes(2)
   .Table.Columns(1).Delete

Tableオブジェクトが持つColumnsプロパティで、表内の全列を表すColumnsコレクションを取得して、
   .Table.Columns(1).Delete

Columnsコレクションの既定メソッドであるItemを使って、1列目の列を表すColumnオブジェクトを取得しています。
   .Table.Columns(1).Delete

先頭スライドに存在する表の最終列を削除するサンプル

以下のようなSubプロシージャで、アクティブなプレゼンテーションの先頭スライドに存在する表の最終列を削除できます。

Sub 先頭スライド内の表の最終列を削除する()
 With ActivePresentation.Slides(1).Shapes(2)
  If .HasTable Then
   With .Table.Columns
    .Item(.Count).Delete
   End With
  End If
 End With
End Sub

最終列を取得するために先ほどの1列目のときよりもコードは複雑になっています。
   With .Table.Columns
    .Item(.Count).Delete

最終更新日時:2019-11-20 03:33

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » PowerPoint VBAで表の列を削除する

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

検索


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

.