Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » Excel VBAのScaleHeightメソッドで全図形の高さを変更する

Excel VBAのScaleHeightメソッドで全図形の高さを変更する

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2407(ビルド17816.20000クイック実行)ベータチャネル

「vba ScaleHeight 全部」
といった検索キーワードでアクセスがありました。

ワークシート上に存在するすべての図形の高さを、Shape.ScaleHeightメソッドで変更するには、どのようなExcel VBAのコードを書けばいいのかを調べていらしたのでしょうか。

アクティブシートの全図形のサイズを変更するサンプルマクロ

アクティブシートに長方形などを複数作成しておいてから、以下のExcelマクロを実行してください。

Sub アクティブシートの全図形のサイズを変更する()
 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メソッドで全図形の高さを変更する

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.