Excelで範囲内の各セルをVBAで処理する(3つの方法)

  • これを共有
Hugh West

大きなデータベースでは、範囲やセルの処理に多くの時間を費やしています。 時には、大きな範囲や大量のセルに対して同じ操作を繰り返さなければなりません。 これは同時に時間を浪費し、効率を低下させます。この問題の賢い解決法は VBA プログラミングコード 今日は、Excelで「範囲内の各セルをVBAで処理する方法」を紹介します。

練習用ワークブックをダウンロードする

この練習帳をダウンロードして、この記事を読みながら課題を実行してください。

Excel.xlsxで範囲内の各セルを処理するVBAコード

Excelで範囲内の各セルにVBAを適用する3つの適切な方法

VBAのコードを使用すると、範囲または列や行の各セルに同じ数式を実行することができます。 このセクションでは、すべてのセクションを通過します。

1.範囲内の各セルにVBAを適用する

与えられた範囲内の各セルに対して同じVBAコードを適用しなければならない状況を考えてみましょう ( B3:F12 これを行うには、VBAのコードを作成する必要があります。

ステップ1.

  • まず、作業を簡単にするために、コマンドボタンを挿入します。 デベロッパータブ を選択します。 インサート で、コマンドボタンをクリックすると、1つ取得できます。

  • コマンドボタンができました。

  • コマンドボタンを右クリックしてオプションを表示します。 選択してクリックします。 物件紹介 をクリックすると、いくつかのオプションが変更できます。

  • コマンドボタンの名前を変更します。 こちらをクリック ".

ステップ2.

  • ここでコマンドボタンをダブルクリックすると、VBAが起動します モジュール ここでは、そのためのVBAコードを記述していきます。

  • まず、2つの変数を宣言します。 ここでは、範囲オブジェクトと呼びます。 セントラルリーグ ルンルン 名前は自由につけられます。
 Dim CL As Range Dim Rng As Range 

  • このコマンドで特定の範囲を指定します。

セットRng = Worksheets("VBA1").Range("B3:F12")

  • ここで、VBA1 はワークシート名、そして B3:F12 は、私たちが定義した範囲です。

  • では、このコードを使って、範囲内の各セルを実行します。 コードは次の通りです。
 For Each CL In Rng CL.Value = 100 Next CL 
  • 値=100 を返すということです。 100 を,与えられた範囲内の各セルに対して行う。

  • だから、最終的なコードはこうなる。
 Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng CL.Value = 100 Next CL End Sub 
  • メインワークシートに移動し、コマンドボタンをクリックして、範囲内の各セルに対してVBAを実行します。

ステップ3.

  • 数値と同様に、範囲内の各セルにテキスト値を入れることもできます。 その場合は、VBAウィンドウで、100の代わりに、実行したいテキスト値を入れます。 変更後の行は、次のようになります。
 CL.Value="ExcelWIKI "です。 

  • コマンドボタンをクリックすると、VBAコードが範囲内の各セルに対してこのテキスト値を返します。

ステップ4.

  • このステップでは、もう少し掘り下げて、範囲内の各空白セルを強調表示することにします。

  • そのために、既存のコードに新しい条件を追加します。 新しい計算式は、次のとおりです。
 If CL.Value = " " Then CL.Interior.ColorIndex = 3 End If 
  • この新しいコードは、空白のセルを赤色でハイライトします。 つまり、完全なコードは次のとおりです。
 Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng If CL.Value = " " Then CL.Interior.ColorIndex = 3 End If Next CL End Sub 

  • コマンドボタンをクリックして、結果を取得します。

類似の読み物。

  • ExcelでVBAのRangeオブジェクトを使うには(5つのプロパティ)
  • VBAの範囲オフセットを使用する(11の方法)
  • エクセルで文字数を数える方法(7つの簡単なコツ)

2.範囲の列の各セルにVBAコードを挿入する

列の各セルに対してもVBAコードを実行することができます。 例えば、数字を含む列があり、10より小さい値に色を付ける必要があるとします。 列の各セルに対してVBAコードを実行するように構築します。

ステップ1.

  • これまで説明した手順でコマンドボタンを作成します。

ステップ2.

  • コマンドボタンをダブルクリックすると、VBAのウィンドウが開きます。
  • という変数を宣言します。 c 「ここでLong型変数を使用しているのは、Long型変数はInteger型変数より容量が大きいからです。
 Dim c As Long 

  • 次に、列のすべてのセルのフォントカラーを黒に変更するコード行を追加します。
 列(1).Font.Color = vbBlack 

  • このコードのループを挿入してください。
 For c = 1 To Rows.Count Next c 

  • このステップでは、セルC4の値(10)より小さい値に色をつける条件を入力します。 そのためには、次のコードを入力します。
 If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If 

  • だから、最終的なコードは
 Private Sub CommandButton1_Click () Dim c As Long Columns(1).Font.Color = vbBlack For c = 1 To Rows.Count If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If Next c End Sub 
  • コマンドボタンをクリックすると、VBAが実行され、結果が表示されます。

3.範囲の行の各セルのVBAコードを記述する

行の各セルに対してVBAコードを実行することもできます。 与えられた行で、行の各セルに対して同じアクションを実行する必要があります。

ステップ1.

  • コマンドボタンを追加し、その名前を「」に変更します。 こちらをクリック "

  • ボタンをダブルクリックしてVBAウィンドウを開き、以下に示すVBAコードを書き込んでください。
 Private Sub CommandButton1_Click () Dim r As Range Dim MyString As String '行の各セルに対して、黄色で塗り潰す For Each r In Range("B3:F3").Rows r.Interior.ColorIndex = 6 Next End Sub 
  • このコードは、行の各セルに実行され、各セルに黄色い色の塗りつぶしが適用されます。

  • ボタンをクリックすると、私たちの結果がここに表示されます。

クイックノート

👉 開発者タブが表示されていない場合は、この手順でアクティブにすることができます。

クイックアクセスツールバーのカスタマイズ → その他のコマンド → リボンのカスタマイズ → デベロッパー → OK

結論

今回は、範囲内の各セルに対してVBAを実行する3種類のアプローチをご紹介しました。 ご質問や疑問がありましたら、ぜひコメントください。 また、Excelのタスクに関連する他の記事もご覧ください!

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