【マクロVBA練習問題13】セルの数値を元に、条件に応じて文字色を変更!文字の色の変更方法

条件分岐




練習問題と内容について

・練習問題の狙い

このシリーズでは課題を元にマクロVBAを実践することでスキルを身につけることが出来ます。

正直、ソースコード作成については実践あるのみです!

答えのコードについては数例挙げますが、「もっといい答えがある」などの意見があれば

問い合わせから連絡ください!  

こんな問題を作ってほしいなどの意見もお待ちしております!

・練習問題13について

こちらはマクロVBAの知識で少し発展した課題になります。

指定されたセルの数値を元に、条件に応じて文字色を変更する練習問題となります。

それでは頑張っていきましょう!

練習問題の内容と動作説明

問題内容

セルA1からA10までの数値を元に、条件に応じて文字色を変更する

動作説明

VBAを使用して、セルA1からA10までの数値を読み取り、特定の条件を満たす場合に文字色を変更します。

この問題では、セルの数値が100を超える場合は赤色200を超える場合は青色に変更する必要があります。

ヒント


以下のヒントを参考にして解答コードを作成してみてください。

・ヒントその1

ループを使用してセル番地A1からA10までの値を順番に取得します。

例えば下記のような見本を紹介します。

For Each cell In Range(“A1:A10”)
 ‘ここに処理
Next cell
これにより、A1からA10まで順に繰り返し処理を行います。

・ヒントその2

セルの文字色を変更するには、FontオブジェクトのColorプロパティを使用します。

例えば、Range(“B2”).Font.Color= RGB(255, 0, 0)というコードを使って、
セルB2の文字色を赤色に変更することができます。

・ヒントその3

取得した値が指定数値以上であるかどうかを判定する条件分岐を使用します。

条件分岐はIf Thenを使用します。

 

使用方法は下記の通りです。

If 条件式1 Then
 ’条件に合った際の処置
End If

 

以上のヒントを参考に課題に取り組んでみてください!

 

最新・便利な機能を搭載したExcel・officeを試しませんか?
Excel 2013以下を使用している方はサポートが終了しているので注意が必要です!
【最新2023年】Excel・Officeの価格比較!あなたに合ったオススメの製品の選定方法から購入 ► 独学エクセル塾 (dokugakuexcel.com)
 

 

解答コード

では回答を見ていきましょう!

・回答その①

Sub Exercise13to1()
Dim cell As Range

For Each cell In Range(“A1:A10”)
 If cell .Value > 200 Then
   cell .Font.Color = RGB(0, 0, 255) ‘ 青色
  ElseIf cell .Value > 100 Then
   cell .Font.Color = RGB(255, 0, 0) ‘ 赤色
 End If
Next cell

End Sub

 

上記のコードでは、セルA1からA10までの数値を読み取り、条件に応じて文字色を変更しています。
セルの数値が200を超える場合は青色、100を超える場合は赤色に変更されます。

では実行した結果を見ていきましょう。
結果はこのようになります。

上手く機能していますね。

解答コードでは、For Eachループを使用してセル範囲内の各セルに対して処理を行っています。

各セルの値を比較し、条件に応じて文字色を変更するために、FontオブジェクトのColorプロパティを使用してRGB値を指定しています。

・回答その②

Sub Exercise13to2()
Dim i As Integer

For i = 1 To 10
 If Cells(i, 1).Value > 200 Then
   Cells(i, 1).Font.Color = RGB(0, 0, 255) ‘ 青色
  ElseIf Cells(i, 1).Value > 100 Then
   Cells(i, 1).Font.Color = RGB(255, 0, 0) ‘ 赤色
 End If
Next i

End Sub


上記のコードでは、セルA1からA10までの数値を読み取り、条件に応じて文字色を変更しています。

セルの数値が200を超える場合は青色、100を超える場合は赤色に変更されます。

解答コードでは、Forループを使用して1から10までの行番号を繰り返し処理しています。
Cells(i, 1)は、i番目の行の1列目のセルを表します。

各セルの値を比較し、条件に応じて文字色を変更しています。

 

 

必要な知識

この問題を解くためには、以下の基本的な知識が必要です。

ループ構造

偶数の個数を数えるためには、セル番地A1からA10までの値を1つずつ判定する必要があります。
ループ構造を使用して、指定した範囲のセルを順番に処理する方法を理解する必要があります。
今回はFor Each文とFor Next文を使用しました。

条件分岐

セルの値が偶数かどうかを判定するためには、条件分岐の文法を理解する必要があります。
VBAではIf…Then…Else文やSelect Case文などが使用されます。

セルの文字色の変更

セルの文字色を変更するには、FontオブジェクトのColorプロパティを使用します。
文字色はRGB値(赤、緑、青)で指定されます。
例えば、赤色は`RGB(255, 0, 0)`で表されます。

RGBの例

白:RGB(0,0,0)
黒:RGB(255,255,255)
赤:RGB(255,0,0)
黄色:RGB(255,255,0)
青:RGB(0,0,255)

まとめ

この練習問題では、ExcelのVBAを使用して特定の条件に基づいてセルの文字色を変更する方法について学びました。

具体的な問題内容は、セルA1からA10までの数値を元に、100を超える数値は赤文字、200を超える数値は青文字に変更するというものでした。

解答コードでは、セルの値を読み取り、条件に応じて文字色を変更するために、
RangeオブジェクトやCellsオブジェクト、Fontオブジェクトを使用しました。また、RGB関数を使用して色を指定しました。

必要な知識としては、VBAの基礎、セルの操作、条件分岐、文字色の変更などがありました。
これらの知識を習得することで、問題を解決するためのコードを作成できます。

練習問題を通じて、VBAの応用的な使い方やセル操作の基本的な操作方法を学ぶことができました。
これらの知識は、Excelの自動化やデータ処理など、実務での業務効率化にも役立つものです。

 

以上で練習問題12となります。お疲れ様でした!