「PPT 列の削除 マクロ」
という検索キーワードでのアクセスに気が付きました。
PowerPoint VBAで表の列を削除するには、どのようなコードを書けばいいのかを探していらしたのでしょうか。
先頭スライドに存在する表の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プロシージャで、アクティブなプレゼンテーションの先頭スライドに存在する表の最終列を削除できます。
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
- Newer:IncrementLeft・IncrementTopとは
- Older:IPythonではヘルプが簡単に引けて便利
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » PowerPoint VBAで表の列を削除する