Home » パワーポイントマクロ・PowerPoint VBAの使い方 » PowerPoint VBAでSelectAllしてCopy

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

「VBA powerpoint 全選択 selectall コピー」
といった検索キーワードでアクセスがありました。

PowerPoint VBAで、Shapes.SelectAllメソッド後に、その選択した図形をコピーするにはどのようなコードを書けばいいのかを探していらしたのでしょうか。

[スポンサードリンク]

もしかすると、

ActiveWindow.Selection.SlideRange.Shapes.SelectAll.Copy

のようなコードを試してみたものの、
「Functionまたは変数が必要です。」
コンパイルエラーが発生したのかもしれません。

Shapes.SelectAllに戻り値はない

まず「.Shapes.SelectAll.Copy」がエラーになる理由をお伝えします。

Shapes.SelectAllメソッドに戻り値がないからです。

拙著『いちばんやさしいPowerPoint VBAの教本』で解説しているオブジェクトブラウザーを使えば一目瞭然です。

詳細ペインに「Sub SelectAll」と表示されているとおり、Shapes.SelectAllメソッドは戻り値がないタイプのメソッドです。

SelectAllしてCopyするサンプルマクロ

Shapes.SelectAllメソッドに戻り値はないのですから、Shapes.SelectAllメソッドの文と、Copyメソッドを使う文を別にする必要があります。

具体的には、以下のようなPowerPointマクロで、SelectAllしてCopyができます。

Sub SelectAll後にCopyして新規スライドにPasteする()
 ActiveWindow.Selection.SlideRange.Shapes.SelectAll
 ActiveWindow.Selection.ShapeRange.Copy

 ActivePresentation.Slides.Add Index:=1, Layout:=ppLayoutBlank
 ActivePresentation.Slides(1).Select

 ActiveWindow.Selection.SlideRange.Shapes.Paste
End Sub

上記のSubプロシージャを実行すると、アクティブなスライドの図形がすべて選択・コピーされてから、先頭に空白の新規スライドが挿入されて、その新規スライドに貼り付けが行われます。

Subプロシージャ内の最初の2行、

ActiveWindow.Selection.SlideRange.Shapes.SelectAll
ActiveWindow.Selection.ShapeRange.Copy

が、SelectAll後にCopyしている箇所です。

最終更新日時:2022-03-23 14:09

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » PowerPoint VBAでSelectAllしてCopy

「パワーポイントマクロ・PowerPoint VBAの使い方」の記事一覧

検索


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

.