2014
1
30

VBAでPowerPointへデータ貼付時のPasteSpecialデータタイプについて

Excel上でコピーしたデータをPowerPointへ貼り付けるVBAというのを以前書いたのですが、その貼り付ける際の形式を選ぶ、データタイプについて調べてみました。


貼り付ける形式を選びたい

こちらの記事へ質問をいただきまして、

パワポの貼り付けオプションにある「元の書式を保持」した形でペーストしたい

とのことでした。前述した記事では、

のように、コピーの時点で形式を指定していたため、貼付けでは特に何もしていなかったのですが、

このように書けば、普通にコピーした後、DataTypeの数字を変えて貼付けることで形式を選べるようです。(ゼロはデフォルト)

DataTypeで選べる形式

参考URLによると、

  • 0 … ppPasteDefault – デフォルトの形式
  • 1 … ppPasteBitmap – BMP画像
  • 2 … ppPasteEnhancedMetafile – 拡張メタファイル
  • 3 … ppPasteMetafilePicture – メタファイル
  • 4 … ppPasteGIF – GIF画像
  • 5 … ppPasteJPG – JPG画像
  • 6 … ppPastePNG – PNG画像
  • 7 … ppPasteText – テキスト
  • 8 … ppPasteHTML – HTML
  • 9 … ppPasteRTF – RTF(リッチテキストファイル)
  • 10 … ppPasteOLEOb​​ject – OLEオブジェクト
  • 11 … ppPasteShape – 図形として

各番号を指定することでこのように使えるようですが、クリップボードにコピーされた内容によってデフォルトの型が異なり、サポート外の形式(元が画像なのにテキストでペーストしようとするなど)の場合、エラーになるらしいです。

私が試した感じでは、ExcelでグラフをコピーしてPowerPointへ上記のコードで貼付けを行ったら7,8,9がエラーに、セルのみだと4,5,6,11がエラーになりました。(Office2013にて)

コピー元の内容によってその結果が異なるようですので、どの形式が希望に合うかテストしてから使うのが良さそうですね。

で、どれが「元の書式を保持」なの?

140130-1

これが…結局わからなかったんです、ごめんなさい…。

どうも、PowerPoint上で手動で行う貼付けのオプションでは、上記のDataTypeよりも多くの機能がありそうな感じなのですが…、頑張って探してみたんですがVBAで指定出来る貼付けの形式が、わたしの力ではこれ以上見つかりませんでした…。どなたかご存知の方は是非教えてください…!

マクロの記録使えばいいじゃーんって思ってたんですが…なくなっちゃったんですね…_(:3 」∠)_

と、いうわけで、とりあえず上記の種類ならば形式を選ぶことが出来そうです。わたしも勉強になりました!

追記

コメント欄にて解決策を教えていただきました!ここよりもうちょっと下にありますので、情報お探しの方は是非どうぞー!

  • このエントリーをはてなブックマークに追加
  • follow us in feedly 618
  • RSSを登録

公開日:2014/01/30
更新日:2014/02/06


4件のコメント

  • たかぴー
    2014年5月27日 12:21 PM

    私も”元の形式でコピー”する方法を探していて、外国でも話題になっていました。
    結果として、Excel側からのコマンドでは無理でPowerPoint側の貼り付けを使うことでうまくいきました。

    ※詳細はウェブサイト参照。
    ただし、PowerPoint側で実行され、直ちに貼り付けたシェイプを編集しようとするとうまくいきません。
    私は3秒間のタイマーを貼り付け後に入れることによってこの問題を回避しました。

    ※コピペの部分のみ抜粋

    • *you
      2014年5月28日 6:20 PM

      たかぴーさん、コメント&情報ありがとうございます!
      PowerPoint側のコマンドを使えばよかったのですね…!更に3秒待つなど回避策まで、とっても有り難いです!勉強になりました(*´∀`*)

  • たかぴー
    2014年7月8日 10:07 AM

    こんにちは。
    タイマーだとEXCEL側データが大きいと間に合わない場合がありました。
    そこで、スライド数が増えるまで待つように変更したところうまくいきました。

    これで快適にスライドの量産処理が出来るようになりましたw

    • *you
      2014年7月8日 11:43 AM

      うおおおおおお(*゚Д゚*) たかぴーさん更なる情報ありがとうございます!!素晴らしいですー!((└(:3」┌)┘))

コメントを残す




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


back to top