「ShapeRange.ScaleWidth マクロ」
という検索キーワードでアクセスがありました。
倍率変更をマクロ記録すると作られるコード
Excel上で選択されているShape(図形)の横幅を下図のような、
[図形の書式設定]作業ウィンドウ-[図形のオプション]-[サイズとプロパティ]-[幅の倍率]欄を使って拡大する操作をマクロ記録すると、ScaleWidthメソッドを使った
Selection.ShapeRange.ScaleWidth 1.5, msoFalse, msoScaleFromTopLeft
といったコードが自動的に作られます。
[高さの倍率]を変更した場合には、ScaleHeightメソッドを使った
Selection.ShapeRange.ScaleHeight 1.5, msoFalse, msoScaleFromTopLeft
というコードが作られます。
特にこの引数について調べていらしたのではないかと、想像しています。
ScaleWidthやScaleHeightの引数の意味
ShapeオブジェクトやShapeRangeオブジェクトに用意されている、ScaleWidthメソッド・ScaleHeightメソッドには、3つの引数Factor・RelativeToOriginalSize・Scaleを指定できます。
3つの引数のうち、第1引数Factorと、第2引数RelativeToOriginalSizeの2つが必須です。
第1引数Factorは難しくありません。倍率です。
第2引数RelativeToOriginalSizeには、図形の場合はmsoFalseを指定するしかありません。
画像やOLEオブジェクトの場合に、引数RelativeToOriginalSizeにmsoTrueを指定すると元々のサイズを基準に、msoFalseを指定すると現在のサイズを基準に拡大/縮小が行われます。
第3引数Scaleには、(オブジェクトブラウザーからは読み取れませんが)MsoScaleFrom列挙型に定義されている定数を指定できます。
第2引数RelativeToOriginalSizeが「As MsoTriState」と定義されているのですから、第3引数Scaleも「As MsoScaleFrom」と、Microsoftが定義しておいてくれていれば良かったのに……と思うのですが。
最終更新日時:2024-03-22 09:31
- Newer:ChartObjectのZOrderはプロパティ
- Older:InlineShapeを選択する
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » ScaleWidthやScaleHeightの引数