Home » エクセルマクロ・Excel VBAの使い方 » Shapeオブジェクト » TopLeftCellの行番号・列番号


TopLeftCellの行番号・列番号

対象:Excel 2010, Excel 2013, Windows版Excel 2016

「vba topleftcell 行番号」
「excelvba .topleftcell.address 行番号取得」
といった検索キーワードでのアクセスが時折あります。

Excel VBAのShapeオブジェクトなどに、

TopLeftCellの行番号・列番号

左上のセルを表すRangeオブジェクトを返す、TopLeftCellプロパティがあります。

[スポンサードリンク]

このTopLeftCellプロパティで取得したRangeオブジェクトの行番号を取得するには、どのようなコードを書けばいいのかを探していらしたのでしょう。

図形の左上セルの行番号を取得するサンプルマクロ

アクティブなワークシート上に図形が存在しているときに以下のSubプロシージャを実行すると、1つ目の図形の左上セルの行番号がメッセージボックスに表示されます。


Sub 図形の左上セルの行番号を取得する()
 MsgBox ActiveSheet.Shapes(1).TopLeftCell.Row
End Sub

図形の左上セルの列番号を取得するサンプルマクロ

ほとんど同じことを調べていらした、
「topleftcell.column 列 数値」
「topleftcell.column 列番号」
という検索キーワードでのアクセスもあります。

Columnというキーワードまで使っている方が、どこにつまずいていらしたのか不明ですが、以下のSubプロシージャが参考になるのではないでしょうか。


Sub 図形の左上セルの列番号を取得する()
 MsgBox ActiveSheet.Shapes(1).TopLeftCell.Column
End Sub

先にご紹介した行番号取得とほとんど同じで、違いは最後がRangeオブジェクトのColumnプロパティになっていることだけです。

オブジェクト式を分解してみましょう

Shape.TopLeftCellプロパティはRangeオブジェクトを返すのですから、
「vba topleftcell 行番号」
「excelvba .topleftcell.address 行番号取得」
といった検索をなさった方が調べていたのは、結局、セルの行番号を取得するコードです。

同様に、
「topleftcell.column 列 数値」
「topleftcell.column 列番号」
を検索なさった方が調べていたのは、セルの列番号を取得するコードです。

おそらくオブジェクト式が何を返すのかを、しっかりイメージすることができていない段階でらっしゃるのでしょうから、オブジェクト変数を使って以下のように分解してみることも必要でしょう。


Sub 図形の左上セルの行番号を取得する_オブジェクト変数利用()
 Dim shp As Shape
 Set shp = ActiveSheet.Shapes(1)

 Dim rng As Range
 Set rng = shp.TopLeftCell

 MsgBox rng.Row
End Sub

アクティブシートの1つ目の図形を表すShapeオブジェクトを変数にセットしている、
  Dim shp As Shape
  Set shp = ActiveSheet.Shapes(1)
を読んで、Shapeオブジェクトをイメージしましょう。

そのShapeオブジェクトの左上のセルを表すRangeオブジェクトを変数にセットしている、
  Dim rng As Range
  Set rng = shp.TopLeftCell
を読んで、Rangeオブジェクトをイメージしましょう。

最後の、
  MsgBox rng.Row
の部分を、
  MsgBox rng.Column
にすれば、もちろん列番号の取得になります。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapeオブジェクト » TopLeftCellの行番号・列番号

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » Shapeオブジェクト » TopLeftCellの行番号・列番号

「Shapeオブジェクト」の記事一覧

検索


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

.