「vba ScaleHeight 全部」
といった検索キーワードでアクセスがありました。
ワークシート上に存在するすべての図形の高さを、Shape.ScaleHeightメソッドで変更するには、どのようなExcel VBAのコードを書けばいいのかを調べていらしたのでしょうか。
アクティブシートの全図形のサイズを変更するサンプルマクロ
アクティブシートに長方形などを複数作成しておいてから、以下のExcelマクロを実行してください。
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
shp.ScaleHeight 1.5, msoFalse
Next
End Sub
正常に実行できると、すべての図形のが1.5倍の高さになります。
拙著『理解するExcel VBA/図形操作の基本』の、「2-2. 大きさに関わるプロパティ・メソッド」で、倍率を指定してサイズを変更するShape.ScaleWidth・ScaleHeightメソッドをご紹介しています。
Shape.ScaleWidth・ScaleHeightメソッドの第2引数RelativeToOriginalSizeには、一般的な図形の場合はmsoFalseしか指定できません。
Microsoftが、引数RelativeToOriginalSizeの省略時にmsoFalseが指定されたものとみなしてくれるような実装をしてくれれば「shp.ScaleHeight 1.5」で済んだはずですが、残念ながらそうなっていないため、
shp.ScaleHeight 1.5, msoFalse
としっかり書かなければいけません。
最終更新日時:2024-07-03 09:31
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » Excel VBAのScaleHeightメソッドで全図形の高さを変更する