Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » IncrementLeft・IncrementTopとは

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン1910 ビルド12130.20344 Microsoft Store)

「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メソッドに指定している引数です。

マクロ記録で作られるのよりシンプルな例で、挙動を確認しましょう。

Sub IcrementLeftを確認する()
 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

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » IncrementLeft・IncrementTopとは

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

検索


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

.