VBAマクロでセルの値読み取りとif文を組み合わせよう
はじめに
if文とセルの値読み取りを組み合わせることができると、いろんなことができます。
在庫管理や特定のセルの値なら色つけなど今まで手動で行っていたことが自動でできるようになります。
ここではif文とセルの値読み取りを組み合わせの一例を紹介したいと思います。
1章 if文とセルの値読み取りを組み合わせるとどんないいことがあるのか
VBAマクロで「If文」と「セルの値の読み取り」を組み合わせると、エクセルの中のデータに応じて自動的に判断して処理を変えることができるようになります。これは、日々の作業を大きく効率化し、ミスを減らすためにとても役立つ機能です。
たとえば、ある表の中に売上や点数、在庫数などのデータが入っているとします。マクロがセルの値を読み取り、「その数値がある条件を満たしているかどうか」をIf文で判断すれば、「合格・不合格を表示する」「特定のセルの色を変える」「注意メッセージを出す」といった動きを自動で行うことができます。
つまり、人がひとつひとつ見て判断していた作業を、マクロに任せることができるのです。これにより、作業のスピードが上がるだけでなく、判断ミスを防ぐこともできます。
さらに、毎回変わるデータにも柔軟に対応できるのも大きな利点です。たとえば、前回は在庫が100個あってOKだった商品が、今回は0個になっていたとき、マクロがその変化を読み取り、「在庫切れ」のアラートを自動で出すといったことが可能です。
このように、「今あるセルの値がどうなっているか」を読み取り、その結果に応じてマクロが判断して動くことで、より賢く、状況に応じた自動処理ができるようになります。初心者でもこの仕組みを覚えれば、実用的なマクロが作れるようになり、日々の業務がぐっと楽になります。
2章 実際に組み合わせてみよう
ここではセルの値が10以上なら無色、10未満5以上なら黄色、5未満なら赤にセルの色を変えるコードを考えたいと思います。
セルの色を変更するには
セル.interior.Color = RGB(a,b,c)と表現します
例えばA1セルの色を赤に変えたければ
cells(1,1).interior.Color = RGB(255,0,0)となります。
ここではA1セルの値を0~15でランダムに発生させその値で決めることとします。
コードは下記となります。
Sub ボタン1_Click()
Dim randNum As Integer
randNum = Int(15 * Rnd)
Cells(1, 1).Value = randNum
If Cells(1, 1).Value >= 10 Then
Cells(1, 1).Interior.Color = RGB(255, 255, 255)
ElseIf Cells(1, 1).Value >= 5 Then
Cells(1, 1).Interior.Color = RGB(255, 255, 0)
Else
Cells(1, 1).Interior.Color = RGB(255, 0, 0)
End If
End Sub
とすると結果はA1セルの値が毎回代わり結果も毎回代わります。
さいごに
ここではセルの値によってセルの背景色を変えることを取り上げましたが、ほかにもいろいろなことができるようになります。
ぜひ試してみてください!
株式会社ONE WEDGE
【Serverlessで世の中をもっと楽しく】
ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
Discussion