none
Power Point2016のマクロ(VBA)で位置、サイズを取得すると実際より3/4の値になる RRS feed

  • 質問

  • Power Point2016のマクロ(VBA)で位置、サイズを取得すると実際より3/4の値が取得されます。

    例えば、サイズが150x150の画像をメニューの[挿入]→[図]で貼り付けた後、
    その画像に対してShape.Width、Shape.Heightでサイズを取得すると、
    112.5x112.5 が返ってきます。

    この3/4は何を基に変更が行われているのでしょうか。
    また変更が行われないようにするにはどのようにすればいいのでしょうか。

    2017年7月5日 6:35

回答

  • PowerPointは画像を挿入すると72dpi相当の画像として扱うみたいです。

    元の画像が96dpiだった場合は以下のような計算となります

    • 96dpiの150ドットの長さ=150/96 = 1.5625 インチ
    • 72dpiの112.5ドットの長さ=112.5/72 = 1.5625 インチ

    つまり96dpi 150x150ドットの画像と同じ大きさになるようにした場合は、72dpi112.5x112.5ドット相当になるということです。

    元の画像が72dpiであればドット数と一致しますし、144dpiであれば半分になります。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク mori_f 2017年7月5日 9:54
    2017年7月5日 9:43

すべての返信

  • PowerPointは画像を挿入すると72dpi相当の画像として扱うみたいです。

    元の画像が96dpiだった場合は以下のような計算となります

    • 96dpiの150ドットの長さ=150/96 = 1.5625 インチ
    • 72dpiの112.5ドットの長さ=112.5/72 = 1.5625 インチ

    つまり96dpi 150x150ドットの画像と同じ大きさになるようにした場合は、72dpi112.5x112.5ドット相当になるということです。

    元の画像が72dpiであればドット数と一致しますし、144dpiであれば半分になります。


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答としてマーク mori_f 2017年7月5日 9:54
    2017年7月5日 9:43
  • なるほど、72dpi相当として扱われるのならサイズが3/4になるのは納得です。

    画像のdpiを調節するなりして対策してみます。

    丁寧な説明ありがとうございました!

    2017年7月5日 9:58