動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2205 ビルド15225.20204 Microsoft Store)
「wordマクロshape lockaspect」
という検索キーワードでアクセスがありました。
Word VBAのShapeオブジェクト等に用意されているLockAspectRatioプロパティについて調べていた方による検索でしょうか。
[スポンサードリンク]
LockAspectRatioは縦横比を固定するかどうかを設定するプロパティ
LockAspectRatioプロパティは、アスペクト比(縦と横の比率)を固定するかどうかを取得/設定するためのプロパティです。
LockAspectRatioプロパティにmsoTrueを指定した場合は縦横比が固定され、msoFalseを指定した場合には縦横比が固定されません。
LockAspectRatioを確認するためのサンプルマクロ
新規Word文書に、画像を浮動オブジェクトとして1つ挿入しておいてから、以下のWordマクロを実行してみてください。
Sub LockAspectRatioを確認する()
Dim shp As Shape
Set shp = ActiveDocument.Shapes(1)
shp.LockAspectRatio = msoTrue
shp.ScaleWidth _
Factor:=0.5, _
RelativeToOriginalSize:=msoFalse
End Sub
Dim shp As Shape
Set shp = ActiveDocument.Shapes(1)
shp.LockAspectRatio = msoTrue
shp.ScaleWidth _
Factor:=0.5, _
RelativeToOriginalSize:=msoFalse
End Sub
LockAspectプロパティにmsoTrueを指定してから、
shp.LockAspectRatio = msoTrue
Shapeオブジェクトに用意されているScaleWidthメソッドの引数を、
Factor:=0.5, _ RelativeToOriginalSize:=msoFalse
と指定しているので、画像の横幅が半分になります。ScaleWidthメソッドは名前のとおり横幅を拡大/縮小するためのメソッドですが、
shp.LockAspectRatio = msoTrue
と縦横比を固定しているため、高さも半分になります。
LockAspectRatioの効果を確認する
つづいて、
shp.LockAspectRatio = msoTrue
の部分を、
shp.LockAspectRatio = msoFalse
に変更してから、再度実行してみてください。
今度は、縦横比が固定されていないため、横幅だけが半分になります。
[スポンサードリンク]
- Newer:SmartArtを図形に変換するExcelマクロ
- Older:VBAで埋め込みグラフをアクティブにする
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAのLockAspectRatioとは