【ExcelVBA】セルの書式設定の表示形式が「数値」のセルをマクロで調べて色分けする

Excel VBA セルの書式設定

前回は、セルの書式設定の表示形式が「標準」に設定されているセルを水色で塗りつぶすマクロを作成しました。

今回は、表示形式が「数値」に設定されているセルを塗りつぶすマクロを作成したいと思います。

表示形式が「数値」のセルを色分けするマクロの作成

開発タブ → Visual BasicをクリックしてVBEを起動します。

前回作成した「標準モジュール」のModule1を選択して次のコードをコピーして貼り付けます。

Sub 表示形式が数値のセルを薄い緑色で塗りつぶす()

Dim search_Cell As Range
Dim Flag As Boolean

For Each search_Cell In Range("A1:G21")

If search_Cell.NumberFormatLocal = "0_ " Then '表示形式が数値の場合は

search_Cell.Interior.ColorIndex = 35 'セルを薄い緑色で塗りつぶします。
Flag = True

End If

Next search_Cell

If Flag = True Then 'ループ終了後にメッセージを表示する。

MsgBox "セルの書式設定の表示形式が「数値」のセルを薄い緑色で塗りつぶしました。"

Else

MsgBox "セルの書式設定の表示形式が「数値」のセルはありません。"

End If

End Sub

Sub 表示形式が数値で桁区切りのセルを薄い黄色で塗りつぶす()

Dim search_Cell As Range
Dim Flag As Boolean

For Each search_Cell In Range("A1:G21")

If search_Cell.NumberFormatLocal = "#,##0_ " Then '表示形式が数値で桁区切りの場合は

search_Cell.Interior.ColorIndex = 36 'セルを薄い黄色で塗りつぶします。
Flag = True

End If

Next search_Cell

If Flag = True Then 'ループ終了後にメッセージを表示する。

MsgBox "セルの書式設定の表示形式が「数値で桁区切り(,)」のセルを薄い黄色で塗りつぶしました。"

Else

MsgBox "セルの書式設定の表示形式が「数値で桁区切り」のセルはありません。"

End If

End Sub

ボタンを作成してマクロの登録

エクセルのSheet1を表示して「開発」タブ →「挿入」→「ボタン(フォームコントロール)」をクリックします。

ボタンを作成したい場所でマウスでドラッグします。今回はマクロが二つあるのでボタンも二つ作成します。

一つ目のボタンを作成すると「マクロの登録ダイアログボックス」が表示されるので、マクロ名から「表示形式が数値のセルを薄い緑色で塗りつぶす」を選択して、OKボタンを押します。

二つ目のボタンも同じようにマクロ名から「表示形式が数値で桁区切りのセルを薄い黄色で塗りつぶす」を選択し、OKボタンを押します。

作成した一つ目のボタンを右クリックして「テキストの編集」を選択し、ボタンの表示を「数値」にします。二つ目のボタンの表示は「数値・桁区切り」にします。

ボタンに登録したマクロの実行

作成した「数値」のボタンをクリックすると、セルの書式設定の表示形式が「数値」に設定されているセルが薄い緑色で塗りつぶしされます。

そして、「数値・桁区切り」のボタンをクリックすると、セルの書式設定の表示形式が「数値で桁区切り」に設定されているセルが薄い黄色で塗りつぶしされます。

今回使用したエクセルシートは、計算を行うセルは数値に設定して、桁数が多い数値を扱うセルにはカンマ(桁区切り)を入れて誤読のないようにしています。

次回は表示形式が「日付」と「文字列」のセルの調べてセルを塗りつぶすマクロの作成を行います。!(^^)!