大量のデータが記載されているExcelデータの色の塗りつぶしを解除したいときに「手作業」で全部やってませんか?
それVBAで秒で解決できますよ!
あなたがVBA初心者でも大丈夫!
この記事を見終わった後には「Excelの塗りつぶしセルを自由にかつ一瞬で解除できる」ようになります。最後まで読めば、今まで手作業でやっていたExcel作業が一気に楽になること間違いなし!
では、一緒にVBAやマクロの世界を学んでいきましょう。
VBAを使うときの最低限の知識
VBA(Visual Basic for Applications)とは、Microsoft Officeアプリケーションに組み込まれたプログラミング言語です。これを使うと、エクセルの操作を自動化できちゃうんです!便利でしょ?
しかし、VBAを使うときは、「どこにコードを書けばいいのか」「どうやって実行するのか」の2つを知らないと使うことができません。
じゃあ、どうしたらいいのかの具体的な手順を簡単に解説します。
- Excelを開く。
- キーボードの「Alt」+「F11」を押す。(Macの場合は「option」+「F11」)
- 画面上部メニューの「挿入」を押す。
- 「標準モジュール」を押す。
- 画面右側のコードウィンドウにコードを書いたり、貼り付けたりする。
- コードが作れたらキーボードの「F5」を押すか上部メニューの「実行」>「マクロの実行」からプログラムを実際に実行する。
- 自分の求めている動作ができたら完了。
VBAは、コードを自分で作るか、ネットからコードを貼り付けるかして使用します。
コードをゼロから作るには、ある程度知識が必要ですが、ネットにあるコードを上記の手順でコピペして使えばある程度は使うことができます。
ぶっちゃけ、内容によってはある程度の知識が必要ですが、簡単なものであれば上記の手順ように「どこにコードを貼り付けて実行すればいいのか」と「コピペ」の知識さえあれば使うことができます。
しかし、注意点としてはネットにあるVBAコードの中には悪意のあるコードが混じっている場合もあるので、ネットでコードをコピーしたことによってあなたが不利益を被る可能性があることは認識したうえで自己責任のもと使用するようにしてください。
特定の色だけを塗りつぶし解除する方法
さて、それではいよいよVBAでセルの塗りつぶしを解除する方法を見ていきましょう!これを覚えるだけで、あなたもVBAの魔法使いになれちゃいますよ!
黄色に塗りつぶしたセルの塗りつぶしを解除するVBAコードを作ってみたいと思います。
Sub 黄色塗りつぶしセルだけ塗りつぶし解除するコード()
Dim cell As Range
For Each cell In ActiveSheet.UsedRange
'ここで黄色を指定しています。↓
If cell.Interior.Color = RGB(255, 255, 0) Then
cell.Interior.Pattern = xlNone
End If
Next cell
End Sub
上記のコードをエクセルにコピペして実行すれば、あら不思議!一瞬で黄色セルの塗りつぶしを解除することができます。
手作業でやっていた方はラクチンになりますね。
Excel内で複数の色を使ってセルを塗りつぶし管理・運用しているような場合で、チェックのためにつけたんだけど、チェックのあとは消したいんだよね~なんて場合を想定しています。
黄色や赤色のセルの塗りつぶしってExcelでよく使われる色だと思いますので、今回は黄色に限定してVBAコードを作ってみました。ちなみに、上記のコードのRGB(255, 255, 0)の部分を変えれば、違う色の塗りつぶしを解除できるので、別の色の塗りつぶしを解除したい場合はそこをいじって色を変更してください。(赤はRGB(255, 0, 0)です。)
1つ注意点としては、黄色で塗りつぶしたセルから色が完全に削除されるため、元に戻したい可能性がある場合は、コードを実行する前に別でExcelブックを作って保存しておきましょう。バックアップがあった方がいい場面もありますからね。
VBAで塗りつぶしを全解除する方法
特定の色だけじゃなくて、Excelの全部のセルの塗りつぶしを解除したいなんてときに使えるセルの塗りつぶしを全解除するVBAのコードは下記の通りです。
Sub すべての塗りつぶしを解除するコード()
Cells.Interior.ColorIndex = xlNone
End Sub
特定の範囲だけ塗りつぶしを解除する方法
Sub A1からD10まで塗りつぶしを解除するコード()
'シート内のA1からD10の範囲のセルの塗りつぶしを解除する
Range("A1:D10").Interior.ColorIndex = xlNone
End Sub
条件に応じてセルの塗りつぶしを解除する方法
色指定ではなく、数字指定でセルの塗りつぶしを解除する方法も併せてお伝えさせていただきます。
特定の数字だけセルの塗りつぶしがある場合を想定して、指定した条件に合ったセルだけ塗りつぶしを解除できるようになるコードは下記のとおりです。
Sub 条件と範囲指定でセルの塗りつぶしを解除()
Dim cell As Range
'シート内のA1からC10の範囲を指定
For Each cell In Range("A1:C10")
'もし101以上だった場合は塗りつぶしを解除する
If cell.Value > 100 Then
cell.Interior.Color = xlNone
End If
Next cell
End Sub
上記のコードは、セルに入力されている数字が101以上だったら、セルの塗りつぶしを解除するコードになります。
セルの塗りつぶしされている色をRGB形式で調べる方法
特定のセルの塗りつぶしを解除したいけど、RGB形式の色のコードがわからない💦ってこともあると思います。
そんなときもVBAで色を調べることができます。
Sub 塗りつぶされたセルの色を調べる方法()
Dim cellColor As Long
Dim red As Integer, green As Integer, blue As Integer
’どこのセルの色を調べるかを指定する。下のコードはA1セルを指定してます。
cellColor = Range("A1").Interior.Color
’RGB形式で表示させるためのコード
red = cellColor Mod 256
green = (cellColor \ 256) Mod 256
blue = (cellColor \ 65536) Mod 256
MsgBox "セルの塗りつぶされた色は: RGB(" & red & ", " & green & ", " & blue & ")"
End Sub
セルの色を取得する基本的なコードです。これで、セルの色情報が手に入りますよ!
まとめ
いかがでしたか?VBAでセルの塗りつぶしを解除したり、色を取得したりする方法を学ぶことで、エクセル作業が劇的に楽になりますよね!今回紹介した方法を活用して、エクセルの達人になりましょう!
本記事のVBAコードを活用してみてください。
最後に、本記事のポイントをおさらいしておきましょう。
簡単まとめ
- VBAでセルの塗りつぶしを解除する方法は、基本的なコードを使って簡単にできます。
- 範囲指定や数字など条件に応じて、複数セルの塗りつぶしを解除することも可能です。
- VBAでセルの色を取得し、色に基づいて処理を行うことができます。
この記事を気に入っていただけたら、コメントやシェアをしていただけるととても励みになります!これからも、業務の自動化に関する情報やパソコンや周辺機器のエラーで困っている方向けの解決できるようになる情報なんかも発信していきますので、たまにサイトをチェックしていただけると、とっても嬉しいです(‘ω’)ノ。
あと、SNSのフォローボタンを、ポチってくれるとめっちゃ嬉しいです👍
ではでは、最後までご覧いただきありがとうございました。
Twitter:@Uriuri_writer
Follow @Uriuri_writer
Instagram:@uriuri_writer
Instagram
コメント