Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » For Eachで列ごとに処理するには

For Eachで列ごとに処理するには

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

For Each~Nextループで、行ごとに処理するExcel VBAのコードについて記事を公開しています。

列ごとに処理する例もご紹介しておきます。

[スポンサードリンク]

For Each~Next文で列ごとに処理するサンプル

セル範囲を列ごとに処理する場合は、以下のようなコードです。

Sub ForEach文で列ごとに処理する()
 Dim rng As Range
 For Each rng in Range("A1:C3").Columns
  rng.Select
  Debug.Print rng.Address(False, False)
 Next
End Sub

上記のSubプロシージャを、拙著『いちばんやさしいExcel VBAの教本』でも多用しているショートカットキー[F8]でステップ実行すると、アクティブなワークシートの、
  1列目(A1:A3セル)
  2列目(B1:B3セル)
  3列目(C1:C3セル)
が順番に選択され、セル番地がイミディエイトウィンドウに出力されます

Range.Columnsで列を単独オブジェクトとして含むRangeコレクションを取得

Rangeオブジェクトに用意されているColumnsプロパティを使うと、列を単独のオブジェクトとして含むコレクションとしてのRangeオブジェクトを取得できます。

ポイントはもちろん、Rangeオブジェクトに用意されているColumnsプロパティです。
  For Each rng in Range("A1:C3").Columns

「Range("A1:C3")」の場合、A1からC3の個々のセルを単独のオブジェクトとして含む、Countプロパティが9を返すコレクションが取得できます。

「Range("A1:C3").Columns」の場合、A1:A3・B1:B3・C1:C3の各列を単独のオブジェクトとして含む、Countプロパティが3を返すコレクションを取得できます。

上記のSubプロシージャを、ステップ実行する様子を動画にしています。よろしければご覧ください → YouTube「ExcelVBAのForEachで列ごとに処理」

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » For Eachで列ごとに処理するには

「行・列を表すRange」の記事一覧

検索


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

.