[ExcelVBA] Excelの表を元の書式を保持してPowerPointへ貼り付ける

[ExcelVBA] Excelの表を元の書式を保持してPowerPointへ貼り付ける

以前書いた記事へ質問をいただきました。ExcelからオブジェクトをコピーしてPowerPointへ貼り付ける内容なのですが、「元の書式を保持」してっていうのがわりと曲者で、グラフのコピペは見かけるものの「表」のコピペは自分では試したことがなかったので、書いてみました。


関連記事

こちらは、上の記事へのコメントからの派生記事です。「元の書式を保持」するテクニックを下の記事のコメントで教えていただいたものをヒントにしています。たかぴーさんありがとうございます!

仕様

まずはこのようなExcelシートを想定します。

列数は同数、行数はバラバラとのことでしたので、行数についてはシートごとにB3から最終端を取得してコピーすることにします。

後述のコードを実行するとPowerPointが起動して以下のような結果になります。

シートの特定範囲をコピーして「元の書式を保持」して貼り付けるので、図のように貼り付け後もテキストや書式の変更ができます。

コード

昔書いたものより自分なりのコードの書き方が変わっているので変数の位置とか変わっていますが、動作に問題はありません。

39行目が「元の書式を保持」の部分ですが、グラフだと「”PasteExcelChartSourceFormatting”」なのですが表だと「”PasteExcelTableSourceFormatting”」で動きました。これは実際にやってみないと気付かなかったな…。

そのほか、だいたいの流れはコメントアウトのメモを読んでいただければいいかなと思うのですが、どうも表の貼り付けだと縦横比固定が効かないのかな…? 貼り付けた表のサイズを変更する部分で、LockAspectRatioプロパティをTrueにしても引き延ばされてしまいました。苦肉の策で縦横とも元の大きさに指定の倍率を掛けるという方法をとっていますが、縦横比固定じゃなくてもよければお好きな数値にしていただければと思います。

以上です!

公開日:2021/02/23

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)