Microsoft ExcelでVBAを使用して条件付き書式設定を行う方法
モナリザの絵を描き、ピカソをVBAを使って残してみましょう。
準備ができて、準備をしなさい…待って!待つ!あなたの馬を保持します。 VBAを使用して条件付き書式を設定するだけで、ペイントするよりも簡単ですか?形をした鳥。
VBA条件付き書式の一般的な構文
If condition than Range(range).Interior.ColorIndex= 1-56
条件で条件チェックを行い、Rangeオブジェクトのプロパティ.iteriour.colorindexを使用して範囲をフォーマットします。カラーインデックスは56色あります。彼らと一緒にホーリーをプレイして、どの数字がどの色を保持しているかを調べてください。
例を使って理解しましょう====例:セルを条件付きでフォーマットするVBAコード
だから、これはシナリオです、私たちは彼らの年齢と年齢層を持つランダムな人々のリストを持っています。
名前だけで年齢層を知ることができれば、なんて簡単なことでしょう。
これを行うには、VBA形式の名前が大人の場合はRED、10代の場合はYELLOW、KIDの場合はGREEN、セルが空白の場合は何も必要ありません。
Sub FormatUsingVBA() Dim rng As Range Dim lastRow As Long lastRow = Cells(Rows.Count, 3).End(xlUp).Row Set rng = Range("C2:C" & lastRow)For Each cell In rng If cell.Value2 = "Adult" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 6 Else Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 0 End If Next cell End Sub
このコードをシートから直接実行するために、同じシートにボタンを描画し、このマクロを割り当てました。これで、[フォーマット]ボタンをクリックするたびに、コードが実行され、年齢層に応じて名前セルが色で更新されます。どうやって?確認してみましょう。
コードの説明:
Dim rng As RangeDim lastRow As LongThese two lines are variable declarations. rng for Range that holds the age group and lastRow to get last nonblank row number.
lastRow = Cells(Rows.Count, 3).End(xlUp).RowThis line returns last row number in lastRow Variable.
Set rng = Range("C2:C" & lastRow)This line sets the range starting from C2 and to the last row. It makes your code dynamic. You add new rows to your data and it will detect and will store in new range in rng variable.
For Each cell In rng If cell.Value2 = "Adult" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 4 ElseIf cell.Value2 = "Teenager" Then Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 6 Else Range(cell.Address).Offset(0, -2).Interior.ColorIndex = 0 End If Next cell
これがメインセグメントです。
For Each cell In rng
最初の行は、範囲内のすべてのセルへのループを実行します。 if cell.Value2 = “Adult” Then次の行は条件チェックです。現在のセル値がAdultであるかどうかをチェックします。
はいの場合は次の行が実行され、そうでない場合は次の行にスキップしますif statement.Range(cell.Address).Offset(0、-2).Interior.ColorIndex = 3 IF条件がTRUEを返す場合、この行はセルの色を次のように設定します。 RED用のColorIndex3。
同様に、次のIFステートメントが実行され、指定されたとおりにアクションが実行されます。
そうですね、VBAを使用して条件付きで範囲をフォーマットできます。 Rangeオブジェクトのinteriorメソッドは、フォーマットのための他の多くのプロパティを制御します。あなたはそれらをおもちゃにするべきです、それは害を及ぼすことはありませんが、あなたは間違いなく学ぶでしょう。そして、あなたが私がここにいる以上の困難に直面した場合。コメントセクションで質問してください。
ファイルのダウンロード*
`link:/wp-content-uploads-2013-07-Conditional-Formatting-using-VBA-in-Microsoft-Excel.xls [__ MicrosoftExcelでVBAを使用した条件付き書式]
人気の記事:
link:/ forms-and-functions-introduction-of-vlookup-function [ExcelでVLOOKUP関数を使用する方法]
link:/ Tips-countif-in-microsoft-excel [ExcelでCOUNTIF関数を使用する方法]
link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]