「ActiveSheet.Shapes("グラフ 9").IncrementLeft -334.0909448819」
といった検索キーワードで、アクセスがありました。
Excelで埋め込みグラフを移動する操作をマクロ記録すると、
ActiveSheet.Shapes("グラフ 1").IncrementLeft -473.571496063
ActiveSheet.Shapes("グラフ 1").IncrementTop 44.1428346457
といったコードが自動的に作られます。
このコードの意味を調べていらしたのでしょう。
埋め込みグラフはShapeオブジェクトとして操作することもできる
まずは、
ActiveSheet.Shapes("グラフ 9")
ActiveSheet.Shapes("グラフ 1")
の部分です。
これは「グラフ 9」あるいは「グラフ 1」という名前の図形を表すShapeオブジェクトを取得するコードです。
VBAから埋め込みグラフを操作する場合、ChartObjectオブジェクトとして操作することもできますが、Shapeオブジェクトとしても操作できます。
マクロ記録で作られる「ActiveSheet.Shapes("グラフ 1")」といったコードは、埋め込みグラフをShapeオブジェクトとして取得しているコードです。
Shape.IcrementLeftメソッドの挙動を確認するサンプル
「.IncrementLeft」の部分は、ShapeオブジェクトのIncrementLeftメソッドを実行しているコードです。
「.IncrementLeft」の後ろの数値は、Shape.IncrementLeftメソッドに指定している引数です。
マクロ記録で作られるのよりシンプルな例で、挙動を確認しましょう。
ActiveSheet.Shapes(1).IncrementLeft 1
End Sub
新しいワークシートに、長方形や楕円などの図形を1つ挿入して、そのワークシートとVBEのコードウィンドウの両方が見える状態で、上記のSubプロシージャを何度も実行してみてください。
実行するたびに少しずつ挿入した図形が右に移動するはずです。
IncrementLeftは水平方向にIncrementTopは垂直方向に動かすメソッド
次に
ActiveSheet.Shapes(1).IncrementLeft 1
を
ActiveSheet.Shapes(1).IncrementLeft -1
に修正してから、再度実行しましょう。
今度は実行するたびに左に移動するはずです。
これがShape.IcrementLeftメソッドの挙動です。
図形を水平方向に、引数で指定されたポイント分だけ移動します。
ここまで実際に試してみた方ならお気づきのとおりShape.IncrementTopなら、
垂直方向の移動です。
最終更新日時:2021-12-22 13:18
- Newer:InlineShapes.AddPictureとは
- Older:PowerPoint VBAで表の列を削除する
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » IncrementLeft・IncrementTopとは