Excelで表の行をループするVBA(11のメソッド)

  • これを共有
Hugh West

Excelのワークブックに大きなデータセットがあるとき、行をループして特定の結果を取り出すことができれば便利なことがあります。 実装は以下のとおりです。 ブイビーエー は、Excelであらゆる操作を実行するための最も効果的で、最も速く、最も安全な方法です。 この記事では、11種類の方法を紹介し、その方法について説明します。 テーブルの行をループする をエクセルで表示します。 VBAマクロ .

ワークブックダウンロード

練習用Excelワークブックは、こちらから無料でダウンロードできます。

VBAでテーブルの行をループする.xlsm

Excelで表の行をループするVBAによる11の方法

このセクションに続いて、次のことを学びます。 テーブルの行をループする で、空白のセルになるまで行をループする、特定の値が見つかるまで行をループする、行をループして特定のセルに色を付けるなど、11種類のメソッドがあります。 ブイビーエー マクロをExcelで実行します。

上記は、この記事で手法を説明するためのサンプルデータセットです。

1.表の各行の各セルをセル参照番号でループするVBAを組み込んでみた

を希望する場合 テーブルのすべての行の各セルをループする をExcelのワークシートに入力し、取得します。 セル参照番号を戻り値として返す を選択し、以下の手順で操作してください。

ステップス

  • はじめに を押してください。 Alt + F11 キーボードから、またはタブで 開発者 -> Visual Basic を開く Visual Basic エディター .

  • 次に、ポップアップ・コード・ウィンドウで、メニューバーから インサート -> モジュール .

  • それから。 コピー 以下のコードと 貼り付ける をコードウィンドウに入力します。
 Sub LoopThroughRowsByRef() LastRow = Range("B" & Rows.Count).End(xlUp).Row FirstRow = 4 i = FirstRow FirstColumn = 2 Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column Count = FirstColumn Do Until Count> LastColumn MsgBox "Currently iterating cell " & Chr(Count + 64) & i Count = Count +1 Loop i = i +1 Loop End Sub 

これであなたのコードは実行できるようになりました。

  • を押してください。 F5 をキーボードで入力するか、メニューバーから Run -> Run Sub/UserForm をクリックするだけでもOKです。 スモールプレイアイコン をクリックすると、マクロが実行されます。

  • また、データセットと結果を視覚的に目撃し、比較するためには 救う コードと ワークシートに戻る の興味を引く。
  • そこから マクロ から デベロッパー タブで表示します。 を選択し、Macro 名を入力します。 をクリックします。 実行 .

コードが正常に実行された後、上のgifを見てください。 ポップアップが表示されています。 MsgBox をお見せします。 各行の各セルのセル参照番号 をExcelシートの表から削除してください。

VBAコード説明

 LastRow = Range("B" & Rows.Count).End(xlUp).Row 

B列を検索して、表の最後の行番号を取得すること。

 1行目=4 

4行目を設定し、ここからデータを開始します。

 i = 最初の行 

1列目からループさせるため。

 FirstColumn = 2 

列番号2を設定し、ここからデータがスタートします。

 Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column 

現在の行を評価し、最後の列番号を取得するために行をループし始める。

 Count = FirstColumn Do Until Count> LastColumn 

最初の行から最後の行まで、列をループしてインクリメントする。

 MsgBox "Currently iterating cell " & Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop 

このコード片は、処理、各反復後のインクリメント、コードの結果を表示するように動作します。

続きを読む Excelの表に新しい行を自動的に追加する方法

2.各行の各セルを値ごとにループするVBAの実装

を希望する場合 テーブルの各行の各セルをループし、セルに格納されている値を戻り値として投げる。 を使用する方法について、このセクションで説明します。 ブイビーエー エクセル

で行うことができます。 ListObject とのことです。 DataBodyRange ざい ブイビーエー オブジェクトとプロパティの両方を使ったマクロのコードをお見せします。

2.1.ListObjectを使用した場合

へのステップ ListObjectを使用して、テーブルの各行の各セルをセルの値でループします。 において ブイビーエー Excelは以下のとおりです。

ステップス

  • 先ほどと同じように、開く Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • 次に、コードウィンドウで コピー 以下のコードと 貼り付ける それを
 Sub LoopThroughRowsByList() Dim iListRow As ListRow Dim iCol As Range For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow End Sub. 

これであなたのコードは実行できるようになりました。

  • その後です。 実行 で紹介したマクロを実行すると、以下のような結果が得られます。

ポップアップがあります MsgBox をお見せします。 各行が持つ値 をExcelシートの表から削除してください。

VBAコード説明

 Dim iListRow As ListRow Dim iCol As Range 

変数を定義する。

 For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow 

このコード片は、まずテーブルの行をループし始める(" TblStudents 「という名前のテーブルを作成し、各行に列を入力します。 そして、MsgBoxにセルの値を渡し、次の列に移動します。 1行のすべての列を反復処理した後、次の行に移動し、最後の行まで反復処理を続けます。

2.2. DataBodyRangeプロパティを使用した場合

テーブルから抽出されたデータをより具体的に利用するために DataBodyRange ざい ListObject . DataBodyRange プロパティは、ヘッダ行と挿入行の間のリストの範囲を含む結果を投げます。

どのようにしたらできるかの手順 テーブルの各行の各セルをDataBodyRangeでセルの値ごとにループする。 において ブイビーエー Excelは以下のとおりです。

ステップス

  • 先に示したように、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • それから。 コピー 以下のコードと 貼り付ける をコードウィンドウに入力します。
 Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub 

これであなたのコードは実行できるようになりました。

  • 後日談です。 実行 を実行し、次の gif を見て出力を確認してください。

ポップアップがあります MsgBox をお見せします。 各行が持つ値 をExcelシートの表から削除してください。

VBAコード説明

 Dim iRange As Range 

変数を定義します。

 For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange 

このコード片は、まずテーブルの行をループし始める(" TblStdnt " はテーブル名)、テーブルのヘッダ行を除いた値の範囲を返します。 そして、その範囲の値を MsgBox に渡します。 そして、次の行に移動して範囲を抽出し、最後の行まで繰り返し処理を続けます。

3.Excelで列を連結して行を反復処理するVBAマクロを適用する

このセクションでは、以下の方法を紹介します。 テーブルの列を最初の列で連結してループさせます。 をExcelのデータセットから取得します。

例えば、今回のデータセットでは、まず、次のような繰り返し処理を行います。 セルB5内のジョン セルC5で101 を連結し、それを繰り返し実行します。 セルB5内のジョン セル D5 の 89 から連結することで 5行目 .

でできることをご紹介しましょう。 ブイビーエー マクロをExcelで実行します。

ステップス

  • 最初は、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • 次に、コードウィンドウで コピー 以下のコードと 貼り付ける それを
 Sub LoopThroughRowsByConcatenatingCol() Dim iRange As Range Dim iValue As String With ActiveSheet.ListObjects("TblConcatenate") For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With End Sub. 

これであなたのコードは実行できるようになりました。

  • 3つ目。 実行 その結果は、以下のGIFをご覧ください。

ポップアップがあります MsgBox をお見せします。 1列目と2列目のセルを連結した値 ( セルB5内のジョン(Colum Bより C 列からセル C5 に 101 )を作成し、その後 1列目と3列目のセルを連結した値 ( セルB5内のジョン(Colum Bより D 列からセル D5 に 89 )の ごばんめ そしてこの連結操作は、テーブルの最後の行に達するまで続けられる。

VBAコード説明

 Dim iRange As Range Dim iValue As String 

変数を定義します。

 With ActiveSheet.ListObjects("TblConcatenate")です。 

次に、コードはアクティブシートからテーブルを選択します(" TblConcatenate " をテーブル名として使用します)。

 For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value。 

その後,カラムのヘッダを除いた各行を繰り返し処理し,カラムのヘッダと行の間の範囲に一致するものを見つけた場合,その値を iValue の変数になります。

 Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With 

上記の条件が満たされない場合は、MsgBoxに値を投げて終了します。 その後、別の範囲のループに移り、終了行まで繰り返し処理を続けます。 終了行に到達すると、マクロはコードの実行を終了します。

4.Excelで表のすべての列を連結して行を繰り返し表示するマクロを埋め込む

このセクションでは、以下の方法について学びます。 各行が保持するすべての列を連結する を持つデータセットで ブイビーエー マクロをExcelで実行します。

それを実行するための手順を以下に示します。

ステップス

  • まず、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • それから。 コピー 以下のコードと 貼り付ける をコードウィンドウに入力します。
 Sub LoopThroughRowsByConcatenatingAllCol() Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") Set iObj = iSheet.ListObjects("TblConcatenateAll") For Each iRow In iObj.ListRows For Each iCol In iObj.ListColumns iResult = iResult & "" &Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow End Sub 

これであなたのコードは実行できるようになりました。

  • 次のページ 実行 マクロコード

上のGIFからわかるように、ポップアップがあることです。 MsgBox をお見せします。 各行内に存在する全ての列の連結値 をExcelのワークシートの表から削除してください。

VBAコード説明

 Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String 

変数を定義する。

 Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol")を設定します。 

作業するシート名を設定する(" 全色を連結する " はワークブック内のシート名)。

 セットiObj = iSheet.ListObjects("TblConcatenateAll")を使用します。 

作業するテーブル名を定義する(" TblConcatenateAll " はデータセットのテーブル名)。

 For Each iRow In iObj.ListRows 

テーブルの各行に対する反復処理を開始する。

 For Each iCol In iObj.ListColumns 

テーブルの各行,各列の反復処理を開始する。

 iResult = iResult & " " & Intersect(iRow.Range, iObj.Listolumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow 

各行の各列が持つ値を交差させて結果を格納する。 各行に存在するすべての列をスキャンした後、MsgBoxに結果を渡す。 その後、再び次の行でループを開始し、テーブルの最後の行に到達するまでループし続ける。

続きを読む Excel VBAで表の複数列を並べ替える方法(2通り)

5.VBAマクロで表の行をループして値が見つかれば反復処理を停止する

を希望するとします。 テーブルの行をループし、特定の値を見つけたらループを停止する。 簡単なマクロコードで可能です。

その方法を学びましょう ブイビーエー をExcelで表示します。

ステップス

  • 最初は、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • 次に、コードウィンドウで コピー 以下のコードと 貼り付ける それを
 Sub LoopThroughRowsForValue() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "エッジは " & iData.Address で見つかりました End If Next iData End Sub 

これであなたのコードは実行できるようになりました。

  • 後日談です。 実行 マクロの
  • それは ループを開始し、特定の値を見つけたらループを停止する (" エッジ ") を範囲指定して投げます。 になります。 MsgBox .

上の画像からわかるように、ポップアップのMsgBoxが表示されています。 セルアドレス、$B$10 で、指定された値が見つかりました。 " エッジ " .

VBAコード説明

 Dim iData As Range 

変数を定義します。

 For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData 

このコードは、1行目から15行目までをループするもので、特定の単語 " エッジ 「これを、1行目から15行目までの全データをスキャンして単語を探し終えるまで続ける。

続きを読む: Excelの表から行や列を挿入・削除する方法

6.Excelで各行をループして特定の値に色をつけるVBA

指定された値のセルアドレスをMsgBoxに投げたくない場合はどうすればよいでしょうか。 その場合、次のようにします。 値を保持するセルを着色する あなたが探しているのは

でその方法を学びましょう。 ブイビーエー マクロを使用します。

ステップス

  • 先ほどと同じように、開く Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • それから。 コピー 以下のコードと 貼り付ける をコードウィンドウに入力します。
 Sub LoopThroughRowsAndColor() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData End Sub 

これであなたのコードは実行できるようになりました。

  • その後です。 実行 マクロの
  • それは はループを開始し、特定の値を見つけたらループを停止する(" エッジ ") の範囲にあり、かつ セルに色をつける とのことです。 カラーインデックス というコードで提供した。

上の画像でお分かりの通りです。 C エルビーテン で、指定された値が見つかりました。 " エッジ " はカラー コード実行後

VBAコード説明

 Dim iData As Range 

変数を定義します。

 For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData 

このコードは、1行目から15行目までをループするもので、特定の単語 " エッジ 「これを1行目から15行目までの全データをスキャンして単語を探し終えるまで続ける。

続きを読む Excelでセルの値からVLOOKUPテーブルの配列を使用する方法

類似の読み物

  • ExcelにTABLE関数は存在するのか?
  • Excelで表をリストに変換する方法(3つの簡単な方法)
  • Excelでレンジをテーブルに変換する(5つの簡単な方法)
  • Excelの表で数式を効果的に使う(4つの例付き)
  • Excelのテーブル名:知っておくべきこと

7.Excelで各行をループして奇数行に色をつけるVBAの実装

前項では、特定の値を持つセルに色を付ける方法を学びました。 この項では、次の方法を学びます。 テーブルの各行をループし、奇数行に色をつけます。 をもって ブイビーエー マクロをExcelで実行します。

実行の手順は以下の通りです。

ステップス

  • 先に示したように、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • それから。 コピー 以下のコードと 貼り付ける をコードウィンドウに入力します。
 Sub LoopThroughRowsAndColorOddRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With End Sub. 

これであなたのコードは実行できるようになりました。

  • 今すぐ 実行 を実行し、その出力を次の画像で見てください。

すべての 奇数列はカラー ワークシートのテーブルに存在するすべての行をループした後。

VBAコード説明

 Dim iRow As Long 

変数を定義します。

 With Range("B4").CurrentRegion 

作業する範囲を定義します。

 For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With 

この部分は、現在の行の次の行から始まって、すべての行を繰り返し処理することを指しています。 B4 行番号を 2 で割った mod が、整数型に格納された行番号と等しい場合、このコードは、計算によって抽出されたすべての行を、コードで指定されたカラーインデックスで着色します。 そして、範囲の終わりに達するまで、すべての行を移動し続けます。

8.Excelで行をループして偶数行ごとに色をつけるVBAの実装

前節では、テーブルの奇数行に色をつける方法を学びました。 この節では、次の方法を学びます。 テーブルの各行をループし、偶数行に色をつけます。 ExcelのVBAマクロで

実行の手順は後述します。

ステップス

  • まず、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • それから。 コピー 以下のコードと 貼り付ける をコードウィンドウに入力します。
 Sub LoopThroughRowsAndColorEvenRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With End Sub 

これであなたのコードは実行できるようになりました。

  • 次のページ 実行 を実行し、その結果を以下の画像でご覧ください。

すべての 偶数列の色 ワークシートのテーブルに存在するすべての行をループした後。

VBAコード説明

 Dim iRow As Long 

変数を定義します。

 With Range("B4").CurrentRegion 

作業する範囲を定義します。

 For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With 

このコード片は、現在の行から3つの行の後に反復処理を開始します。 B4 最初に色をつけてから、行数を 2 つ増やし、データセットの最後の行に達するまで色をつけ続ける。

9.マクロを適用してExcelで空白のセルまで行を反復する

もし、あなたのコードがこのように動作することを望むなら テーブルのすべての行をループし、空白のセルに到達した時点で停止する。 このタスクを実行するには、以下の2つの方法があります。 FORループ とのことです。 Do-Untilループ エクセルで ブイビーエー .

9.1. FORループを使用する場合

へのステップ テーブルの行をFORループで空白セルまで循環させる において ブイビーエー Excelは以下のとおりです。

ステップス

  • 最初は、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • その後です。 コピー 以下のコードと 貼り付ける をコードウィンドウに入力します。
 Sub ForLoopThroughRowsUntilBlank() Dim x As Integer Application.ScreenUpdating = False NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count Range("B4").Select For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next Application.ScreenUpdating = True End Sub. 

これであなたのコードは実行できるようになりました。

  • それから。 実行 を実行し、その結果を以下のgifに示します。

マクロを実行した後 は、すべての行をループし始めました。 に到達した時点で、テーブル内の 空白セル, セルB8 , それ 二度手間 .

VBAコード説明

 Dim x As Integer 

変数を定義します。

 Application.ScreenUpdating = False 

画面更新イベントをオフにする。

 NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count 

から始まるすべての行を格納する。 セルB4 最後の1枚まで

 レンジ("B4").Select 

選択 セルB4 .

 For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next 

このコードは、すべての行をループして、空のセルを見つけるとそれを選択し、行の最後に達するまでスキャンを続けるというものです。

 Application.ScreenUpdating = True 

画面更新イベントをONにする。

9.2. Do-Untilループあり

へのステップ Do-Untilループで空白セルまで行をループします。 において ブイビーエー を以下に示します。

ステップス

  • まず、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • それから。 コピー 以下のコードと 貼り付ける をコードウィンドウに入力します。
 Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub 

これであなたのコードは実行できるようになりました。

  • 後日談です。 実行 その結果が以下のgifです。

マクロを実行した後、起動した 全行程のループ に到達した時点で、テーブル内の 空白セル, セルB8 , それ 二度手間 .

VBAコード説明

 レンジ("B4").Select 

作業するセルを選択します。

 Do Until IsEmpty(ActiveCell) 

空のセルが見つかるまでループを開始し、継続する。

 アクティブセル.オフセット(1, 0).Select Loop 

行の中に空のセルが見つかったら、それを選択して反復を停止します。

10.Excelで複数の空白セルができるまで行を繰り返し処理するVBAマクロ

前節では、空のセルが見つかったらループを停止する方法を学びました。 しかし、空のセルが1つだけでなく、複数見つかるまでは繰り返しを停止したくない場合はどうすればよいでしょうか。

へのステップ 複数の空白セルができるまで行をループする があるテーブルで見つかります。 ブイビーエー Excelは以下の通りです。

ステップス

  • まず、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • それから。 コピー 以下のコードと 貼り付ける をコードウィンドウに入力します。
 Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub 

これであなたのコードは実行できるようになりました。

  • 今すぐ 実行 を実行すると、次のような gif が出力されます。

マクロを実行した後 最初の空白セル、セルB8で止まらなかった を発見して停止しました。 Cell B16の連続した2つのブランクセル .

VBAコード説明

 レンジ("B4").Select 

作業するセルを選択します。

 Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) 

2 つの連続した空のセルが見つかるまで、ループを開始し、継続する。

 アクティブセル.オフセット(2, 0).Select Loop 

2つの連続した空セルが見つかったら、それを選択し、反復を停止する。

11.Excelで空白になるまですべての列を連結して行をループするVBAを埋め込む

このセクションでは、以下の方法を紹介します。 テーブルのすべての行をループし、空白セルができるまですべての列を連結します。 が見つかりました。 ブイビーエー エクセル

でその方法を学びましょう。 ブイビーエー マクロをExcelで実行します。

ステップス

  • 最初は、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
  • それから。 コピー 以下のコードと 貼り付ける をコードウィンドウに入力します。
 Sub ConcatenatingAllColUntilBlank() Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String Set iSheet = Sheets("ConcatenatingAllColUntilBlank") iValue = Range("B4").CurrentRegion For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = ""、 iValue(i, J) 、iResult & " & iValue(i, J)) Next J MsgBox iResult Next i End Sub 

これであなたのコードは実行できるようになりました。

  • 後日談です。 実行 を実行し、その結果を以下のgifに示します。

上のGIFからわかるように、ポップアップがあることです。 MsgBox をお見せします。 各行内に存在する全ての列の連結値 しかし、それはあなたのExcelワークシートのテーブルから。 空白のセルに到達すると停止する .

VBAコード説明

 Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String 

変数を定義する。

 Set iSheet = Sheets("ConcatenatingAllColUntilBlank")を設定します。 

作業するシート名を設定する(" 空白までのAllColUntilの連結 " はワークブック内のシート名)。

 iValue = Range("B4").CurrentRegion 

作業する範囲を定義します。

 For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult &" &iValue(i, J)) Next J MsgBox iResult Next i 

このコードでは、配列でループを開始し、配列の最大添え字と 1 次元の下界を返すまでループを続けます。 そして、2 次元の下界を抽出する反復処理に入ります。 その後、抽出されたすべての値を iResult を連結し、その結果をMsgBoxに投げる。 これを空のセルを見つけるまで続ける。

結論

最後に、この記事では、11の効果的な方法を紹介しました。 テーブルの行をループする をエクセルで表示します。 VBAマクロ この記事が皆様のお役に立てれば幸いです。 また、ご質問等ございましたらお気軽にお寄せください。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。