Home » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » CurrentRegionの列数を取得する-.Columns.Count

CurrentRegionの列数を取得する-.Columns.Count

対象:Excel2010, Excel2013, Windows版Excel2016

「vba currentregion 列数」
「currentregion 列をカウント」
といった検索キーワードでのアクセスが時折あります。

CurrentRegionの列数を取得するサンプルマクロ

結論からいえば以下のようなコードで、CurrentRegionの列数を取得できます。


Sub CurrentRegionの列数を取得する()
 Dim cnt As Long
 cnt = ActiveCell.CurrentRegion.Columns.Count
 MsgBox cnt
End Sub

[スポンサードリンク]

ActiveCell.CurrentRegion.Columns.Countの意味

コードとしては上記のとおりですが、自分でExcelマクロを作れるようになりたい方は、「ActiveCell.CurrentRegion.Columns.Count」の意味を確認しておきましょう。

拙著『いちばんやさしいExcel VBAの教本』の、Lesson 52等でプロパティは2種類あることをお伝えしています。

今回の「ActiveCell.CurrentRegion.Columns.Count」では、最後のCountだけが単なるデータを取得するためのプロパティで、他のActiveCell・CurrentRegion・ColumnsはいずれもRangeオブジェクトを取得するためのプロパティです。

ActiveCellの返すRange

具体例を見ましょう。
下図のような状況のとき、

ActiveCellプロパティは、B2セルを表すRangeオブジェクトを返します。

Range.CurrentRegionの返すRange

つづくRangeオブジェクトのCurrentRegionプロパティは、B2:D5セルを表すRangeオブジェクトを返します。
CurrentRegionをご存知の方は、ここはOKでしょう。

Range.Columnsの返すRange

そのあとの、RangeオブジェクトのColumnsプロパティは、B2:B5・C2:C5・D2:D5セルを単独のオブジェクトとして持つ、列を表すRangeオブジェクトを返します。

「vba currentregion 列数」
「currentregion 列をカウント」
と検索なさった方にとって、ここがもっとも難易度の高い箇所でしょうが、
  ActiveCell.CurrentRegion.Columns
で、上図のような列を表すRangeオブジェクトが返されることを、イメージしましょう。

Range.Countの返す数

最後に、RangeオブジェクトのCountプロパティで、列の数を取得しています。

列を表すRangeオブジェクトを取得するColumnsプロパティ

拙著のLesson 63「行全体・列全体を表すRangeオブジェクトについて学習しましょう」の中で、

Columns.Countで列数を取得できることをご紹介しています。

ColumnsプロパティはRangeオブジェクトにも用意されているので、「Columns.Count」の前には、Rangeオブジェクトを取得するコードを書くことができ、この場合そのRangeオブジェクトの表すセル範囲の列数を取得できます。

今回ご紹介した「ActiveCell.CurrentRegion.Columns.Count」が、「Columns.Count」の前にRangeオブジェクトを取得するコードを書いた例です。

最終更新日時:2018-09-12 20:53

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » CurrentRegionの列数を取得する-.Columns.Count

TrackBack:0

TrackBack URL
[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » CurrentRegionプロパティ » CurrentRegionの列数を取得する-.Columns.Count

「CurrentRegionプロパティ」の記事一覧

検索


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

.