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
エンドサブ

スマートシート 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 は、携帯電話でカレンダーを表示するアプリケーションです。携帯電話で太陰太陽の日付をすぐに確認できるため、重要な仕事を計画することができます。

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook は、Microsoft Corporation によって開発されたビジネスおよび生産性アプリケーションです。

クリックアップ

クリックアップ

ClickUp は、あらゆるビジネスにとって最も評価の高い生産性プラットフォームの 1 つです。Google、Booking.com、サンディエゴ・パドレス、Uber などの大企業はすべて、職場の生産性を向上させるために ClickUp を使用しています。

PDF-XChange ビューア 2.5.322.10

PDF-XChange ビューア 2.5.322.10

PDF は、テキスト ドキュメントの読み取り、作成、送信に一般的に使用される形式になっています。その結果、この種のドキュメントに使用されるプログラムの数も増加しました。PDF-XChange Viewer は、ますます多くの PDF ビューアの 1 つです。

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice は、特に Excel、PowerPoint、Word など、Microsoft 365 に匹敵する Office アプリケーションの完全なスイートを提供します。プロジェクトをより効率的に管理できるようになり、いくつかのファイル形式がサポートされます。

iTaxviewer 1.8.7をダウンロード

iTaxviewer 1.8.7をダウンロード

iTaxViewer ソフトウェアは、現在最も人気のある XML ファイル読み取りソフトウェアです。このソフトウェアは、国税総局のXML形式の電子申告書を閲覧するためのアプリケーションです。

Nitro PDF リーダー

Nitro PDF リーダー

Nitro PDF Reader は、ほとんどの人が PDF ドキュメントを使用して毎日実行する基本的なタスクをすべてカバーする便利な PDF エディターです。

Foxit リーダー 12

Foxit リーダー 12

Foxit Reader は主に PDF リーダーですが、PDF ファイルの作成、署名、編集、注釈の追加も可能です。オペレーティング システム上で動作し、Microsoft Office パッケージのさまざまなプログラム用のプラグインがあります。