もめんの格闘日記

主にPowerPointを中心としたPCのTips的なものを書いています。

PowerPointマクロ上での長さ(pixel)とcmを換算する方法

今日はPowerPointマクロ上での長さについて書きます。

マクロ上でのShapeとかの長さはpixel単位になります。

でも、PowerPoint上でオートシェイプとかの長さを変更する際はcmで表記されます。

pixelをcmに変える計算は

(cmでの長さ) × 72 / 2.54

これでできます。

72 はPowerPointの解像度だと思います。72pixel / inch

2.54 はcmとinchの換算。1inch = 2.54cm

 

例のマクロはこんな感じ

Sub sample()

Dim w As Single

w = 15 * 72 / 2.54

With ActiveWindow.Selection.ShapeRange
  .Width = w
End With

End Sub

このマクロでは、選択しているShapeの幅を15cmに変更します。

長さを入れる変数はsingleかdoubleにして下さい。

そうしないと小数点以下も含めないと長さが微妙にずれます。

 

Shapeをたくさん出力する様なマクロでは最初に72/2.54を定数として宣言しておくと便利だと思います。

Private Const length As Single = 72 / 2.54

Sub sample()

Dim w As Single

w = 15 * length

With ActiveWindow.Selection.ShapeRange
  .Width = w
End With

End Sub

一番上に一行足しただけですが。。。

これで同じモジュール内ではlengthがcmへの換算に使えます。

Constは定数を宣言するときに使うやつです。dimの代わり(?)。

 

今回はこれで終わりです。

ありがとうございました。