Excel 2016VBAでFor-Nextループを使用する方法

Excel 2016VBAでFor-Nextループを使用する方法

Excel VBAプログラミングで最も単純なタイプのループは、For-Nextループです。ループは、ある値で開始し、別の値で停止するカウンター変数によって制御されます。ForステートメントとNextステートメントの間のステートメントは、ループ内で繰り返されるステートメントです。

次の例

次の例では、For-Nextループを使用して、最初の1,000個の正の数を合計します。Total変数はゼロから始まります。次に、ループが発生します。変数Cntはループカウンターです。これは1から始まり、ループを通過するたびに1ずつ増加します。Cntが1,000になると、ループは終了します。

この例では、ループ内にステートメントが1つだけあります。このステートメントは、Cntの値をTotal変数に追加します。ループが終了すると、MsgBoxは数値の合計を表示します。

サブAddNumbers()
  合計を2倍に暗く
  Dim Cnt As Long
  合計= 0
  Cnt = 1から1000の場合
    合計=合計+ Cnt
  次のCnt
  MsgBox合計
エンドサブ

ループカウンターは正規変数であるため、ForステートメントとNextステートメントの間のコードブロック内でその値を変更するコードを記述できます。ただし、これは非常に悪い習慣です。

For-ステップのある次の例

ステップ値を使用して、For-Nextループの一部のカウンター値をスキップできます。これは前の例で、1から1,000までの奇数のみを合計するように書き直されています。

Sub AddOddNumbers()
  合計を2倍に暗く
  Dim Cnt As Long
  合計= 0
  Cnt = 1から1000の場合ステップ2
    合計=合計+ Cnt
  次のCnt
  MsgBox合計
エンドサブ

今回は、Cntは1から始まり、3、5、7などの値を取ります。ステップ値は、カウンターのインクリメント方法を決定します。Cntの最大値は999になるため、上位ループ値(1000)は実際には使用されないことに注意してください。

ステップ値3を使用する別の例を次に示します。この手順はアクティブシートで機能し、行1から行100までの3行ごとに薄い灰色の陰影を適用します。

サブShadeEveryThirdRow()
  Dim i As Long
  i = 1から100の場合ステップ3
    Rows(i).Interior.Color = RGB(200、200、200)
  次の私
エンドサブ

このマクロを実行した結果を確認してください。

Excel 2016VBAでFor-Nextループを使用する方法

ループを使用して、行に背景の陰影を適用します。

ExitForステートメントを使用したFor-Nextの例

For-Nextループには、ループ内に1つ以上のExitForステートメントを含めることもできます。VBAがこのステートメントを検出すると、ループはすぐに終了します。

次の例は、ExitForステートメントを示しています。このルーチンは関数プロシージャであり、ワークシートの数式で使用することを目的としています。この関数は、1つの引数(Strという名前の変数)を受け入れ、最初の数字の左側の文字を返します。たとえば、引数が「KBR98Z」の場合、関数は「KBR」を返します。

関数TextPart(Str)
  Dim i As Long
  TextPart =““
  i = 1の場合Len(Str)へ
    If IsNumeric(Mid(Str、i、1))Then
      終了
    そうしないと
      TextPart = TextPart&Mid(Str、i、1)
    終了する場合
  次の私
終了機能

For-Nextループは、1で始まり、文字列内の文字数を表す数字で終わります。このコードは、VBAのMid関数を使用して、ループ内の1文字を抽出します。数字が見つかった場合、Exit Forステートメントが実行され、ループが途中で終了します。

文字が数値でない場合は、戻り値(関数の名前と同じ)に追加されます。ループがすべての文字を検査するのは、引数として渡された文字列に数字が含まれていない場合のみです。

ネストされたFor-Nextの例

ループ内には任意の数のステートメントを含めることができ、他のFor-Nextループ内にFor-Nextループをネストできます。

次の例では、ネストされたFor-Nextループを使用して、12行5列のセル範囲に乱数を挿入します。ルーチンは、外側のループ(Colカウンターのあるループ)の反復ごとに1回、内側のループ(Rowカウンターのあるループ)を実行することに注意してください。つまり、ルーチンはCells(Row、Col)= Rndステートメントを60回実行します。

Excel 2016VBAでFor-Nextループを使用する方法

これらのセルは、ネストされたFor-Nextループを使用して埋められました。

サブFillRange()
  薄暗いコル
  薄暗い列と同じくらい
  Col = 1から5の場合
    行= 1から12の場合
      Cells(Row、Col)= Rnd
    次の行
  次の列
エンドサブ

次の例では、ネストされたFor-Nextループを使用して、値100で3次元配列を初期化します。このルーチンは、すべてのループの途中でステートメント(割り当てステートメント)を毎回1,000回(10 * 10 * 10)実行します。 i、j、およびkの値の組み合わせが異なる場合:

Sub NestedLoops()
  Dim MyArray(10、10、10)
  Dim i As Long
  Dim j As Long
  Dim k As Long
  i = 1から10の場合
    j = 1から10の場合
      k = 1から10の場合
        MyArray(i、j、k)= 100
    次のk
  次のj
次の私
  '他のステートメントはここにあります
エンドサブ

これは、ネストされたFor-NextループをStep値とともに使用する最後の例です。この手順では、交互のセルの背景色を変更してチェッカーボードを作成します。

Excel 2016VBAでFor-Nextループを使用する方法

ループを使用してチェッカーボードパターンを作成します。

行カウンターは1から8までループします。If-Then構造体は、使用するネストされたFor-Next構造を決定します。奇数行の場合、Colカウンターは2で始まります。偶数行の場合、Colカウンターは1で始まります。両方のループはステップ値2を使用するため、代替セルが影響を受けます。2つの追加ステートメントにより、セルが正方形になります(実際のチェッカーボードのように)。

サブMakeCheckerboard()
  Dim R As Long、C As Long
  R = 1から8の場合
    WorksheetFunction.IsOdd(R)の場合
     C = 2から8の場合ステップ2
       Cells(R、C).Interior.Color = 255
     次のC
    そうしないと
     C = 1から8の場合ステップ2
       Cells(R、C).Interior.Color = 255
     次のC
    終了する場合
  次のR
  Rows(“ 1:8”)。RowHeight = 35
  Columns(“ A:H”)。ColumnWidth = 6.5
エンドサブ

SharePointOnlineドキュメントセットを使用してコンテンツを管理する

SharePointOnlineドキュメントセットを使用してコンテンツを管理する

Microsoft Office365製品スイートの1つであるSharePointOnlineでは、ドキュメントセットを使用すると、効率的にプロジェクトごとにドキュメントをグループ化し、管理できます。

SharePointでタグ付けする方法

SharePointでタグ付けする方法

SharePointでのタグ付けは、コンテンツの可視性と検索性を向上させるための重要な手法です。

Excelのソルバーエラーメッセージはどういう意味ですか?

Excelのソルバーエラーメッセージはどういう意味ですか?

Excelのソルバーが表示するエラーメッセージの意味を理解し、最適な解決策を見つける方法について詳しく解説します。

Excelの[ソルバーオプション]ダイアログボックスで[GRG非線形]タブを使用する方法

Excelの[ソルバーオプション]ダイアログボックスで[GRG非線形]タブを使用する方法

Excelの[GRG非線形]タブには、GRG非線形解法を使用しているときにソルバーが機能する方法を管理するためのボタンとボックスがあります。オプションを利用し、最適な解決策を得るためのステップを解説します。

SharePointをPowerBIと統合する方法

SharePointをPowerBIと統合する方法

SharePointをPower BIと統合する方法と、レポートをSharePointサイトに接続する方法をLuckyTemplates.comから学びます。

SharePointサイトを共有およびフォローする方法

SharePointサイトを共有およびフォローする方法

個人やグループがコミュニケーション、コラボレーション、共有、接続できるSharePointソーシャルネットワーキングツールの使用方法を学びます。

SharePoint列のデータ入力を検証する

SharePoint列のデータ入力を検証する

SharePoint列のデータ入力を検証する方法を学び、データの整合性を確保するための実践的なソリューションを提供します。

スマートシート 9.1.1

スマートシート 9.1.1

Smartsheet は、プロジェクトの管理、ワークフローの構築、チームとの共同作業を可能にする動的な作業プラットフォームです。

共有ポイント

共有ポイント

SharePoint は、さまざまなワークフロー アプリケーション、「リスト」データベース、その他の Web コンポーネント、およびビジネス グループの共同作業を制御するためのセキュリティ機能を使用する Web ベースのコラボレーション システムです。

パーペチュアルカレンダー 1.0.38/1.0.36

パーペチュアルカレンダー 1.0.38/1.0.36

Van Nien Calendar は、携帯電話でカレンダーを表示するアプリケーションです。携帯電話で太陰太陽の日付をすぐに確認できるため、重要な仕事を計画することができます。