今日は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の代わり(?)。
今回はこれで終わりです。
ありがとうございました。