「inlineshapes.scaleheight」
という検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
Word VBAのInlineShapeオブジェクトに用意されているScaleHeightプロパティについて調べていた方による検索です。
InlineShape.ScaleHeightを使ったサンプルマクロ
簡単なサンプルを試してみましょう。
配置が行内に設定されている画像の存在する文書をアクティブな状態で、以下のSubプロシージャを実行してください。
ActiveDocument.InlineShapes(1).ScaleHeight = 50
End Sub
「ActiveDocument.InlineShapes(1)」で取得できる1つ目の画像が、元の50%の高さになります。
知ってしまえば決して難しいコードではありません。が、経験のある方が注意すべき落とし穴があります。
InlineShapeのScaleHeight・ScaleWidthはメソッドではない
「ScaleHeight」をオブジェクトブラウザーで検索するとわかるとおり、InlineShapeオブジェクトと、Shape・ShapeRangeオブジェクトに、ScaleHeightは用意されています。
厄介なことに、ShapeオブジェクトとShapeRangeオブジェクトのScaleHeightはメソッドであるのに対し、InlineShapeオブジェクトのScaleHeightはプロパティなのです。
ScaleHeightの仲間であるScaleWidthも同様です。
ShapeオブジェクトやShapeRangeオブジェクトのScaleHeight・ScaleWidthプロパティをご存知の方が、初めてInlineShapeのScaleHeight・ScaleWidthメソッドを使うときには、混乱しそうです。
ExcelのScaleHeight・ScaleWidthはメソッド
Excel VBAのScaleHeight・ScaleWidthをご存知の場合も、同様に混乱しそうです。
WordのInlineShapeに該当するオブジェクトは、Excelには存在しません。
ですから、Excel VBAのScaleHeight・ScaleWidthは、ShapeオブジェクトまたはShapeRangeオブジェクトのメソッドです。
Excel VBAでScaleHeightメソッド・ScaleWidthメソッドをご存知の方が、Word VBAのInlineShape.ScaleHeightプロパティやInlineShape.ScaleWidthを初めて使うときには注意しましょう。
最終更新日時:2021-11-17 15:54
- Newer:AddShapeで塗りつぶしなしに
- Older:ShapeのAddress(セル番地)を取得したい
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » InlineShapeのScaleHeightとScaleWidthはプロパティ