Excelマクロ別の方法ーマクロルーティン#20(指定した文字全てに色を付ける)
この記事はマクロルーティン#20(指定した文字全てに色を付ける)でご紹介したマクロの書き方とは別の方法をご紹介します。
◆イメージ
マクロルーティン#20で書いたマクロ↓↓
★「For To Next」を使って書きました。
E列を固定して2行目から10行目まで確認する方法です。
今回ご紹介したい方法は列を固定せずに指定した範囲のセルを全て確認するという方法です。(もちろん、E2からE10で範囲指定することもできます。)
◆広範囲のセルを全部確認する!
マクロルーティン#20では確認するセルをE列に固定したマクロでした。
今回はC2からE10の範囲に指定して、この中のセルを全部確認するという方法です。こちらの方法のほうが理解しやすいという方もいらっしゃるかもしれません!
◆書くマクロ
変数宣言を入れて6行です。
(冒頭のマクロで変数宣言を強制して書く場合は 変数「i」が使われていますので Dim i As Long を ” For i = ~ ” の行の前に書きます。)
◆解説
<テキスト>----------
④Dim atai As Range
①For Each atai In Range("C2:E10")
②If atai.Value >= 10000 Then
③atai.Font.Color = vbRed
②End If
①Next
----------------
①はわかりやすくご説明すると次の四角枠のような書き方になっています。
★[変数]は[変数を含む集まり]の中の一つです。
①For Each atai In Range("C2:E10")
・・・
①Next
atai は Range("C2:E10") の中の一つです。
★Range("C2:E10")の中からセルを一つづ取得して全部のセルを確認する書き方になります。
②If atai.Value >= 10000 Then
→(①で)取得したセルの値が10000以上なら
③atai.Font.Color = vbRed
→そのセルのフォントの色は赤にする
④Dim atai As Range
そして、いつものとおり atai は今ここで作った変数なので変数宣言をします。
atai は Range("C2:E10") の中の一つのセルのことをさしますので
この場合Rangeオブジェクトとして変数宣言をします。
Dim atai As Range のように書きます。
オブジェクト変数のことは徐々に慣れていけば大丈夫です。
今はこのまま覚えます。
◆まとめ
For Each を使うと、[変数を含む集まり]の部分で範囲指定することができます。
マクロルーティン#20で書いたマクロのようにE2からE10の範囲にしたいときは 次のようにRange("E2 : E10") とかけばいいのです。
今はわからなくても、同じコードを何回もまねして書いているとだんだんわかってきます。
最初は無理せず簡単なコードから慣れていきましょう。
この記事が気に入ったらサポートをしてみませんか?