ExcelVBAでColorIndex一覧表を作る方法

みなさま、こんにちは!
とある企業で会社員をしているChiaryです🙂‍↕️

🥹『Excel作業の自動化ボタンを作ってほしい』
🥹『自動でリスト作成されるようにしてほしい』

との依頼を受け今まで約150のExcelマクロブックで年間15,000時間(ざっくり)の改善をしてきました!!

使っているのはExcelの標準機能にあるVisualBasicです💻

🙍🏻‍♀️VBAって何?
🙎🏻‍♂️難しそう🫣

って思われがちですがちょっと理解できたら面白くなるかもしれません!

今日はわたしがExcelVBAコードで作るのがたのしかった且つコードを書いているとよく使うColorIndex一覧表を作る方法をご紹介します!

ちょっとマニアックな内容になってるかもしれません🐶

そもそもColorIndex 一覧表って何?

Excelを使っている方は文字に色を付けたり、セルを塗り潰したりするときに手作業で色を選んで変えていると思います。

それをVBAで変えようとする場合ColorIndexを使います!
ColorIndexには0〜56までの番号があってその番号をつけると色が表現できます。

ColorIndexの色番号と色の組み合わせは下の図のような一覧表になります😌

わたしは、この表をVBAコードで作るのが楽しくて好きなのです!
ちょっとマニアックではありますが、その作り方をご紹介させていただきます。

ColorIndex一覧表のVBAコードでの作り方

① Excelのシート名を「Color」に変える
② 下に書いているコードをModuleにまるっとコピペしてそのまま書く
③ 処理(F5を押すでもOK)すると、カラー番号の色がA列に完成します。

Sub MakeColorIndex()
Dim r As Long 'Longは整数の変数
For r = 0 To 56
 ThisWorkbook.Worksheets("Color").Cells(r+2, 1).Interior.ColorIndex = r
Next r
MsgBox "処理がおわりました☆"
End Sub

7行で作れました!
VBAプログラマーあるあるかもですが、いかに短い処理(行数)で、作れるか考えるのもちょっとたのしかったりします。

コードの意味解説🌟

💻 Sub MakeColorIndex()
    ~ 処理 ~
   End Sub
   一つの処理の始まりから終わりを表しています。

💻 Dim r as Long
  rには整数しか入らないと宣言しています。
  数学でX、Yと置き換えていたのと同じようなニュアンスです。

💻 For r =0 to 56
   ~ 処理 ~
   Next r
  r=0から56まで ~処理~ を繰り返す

💻 ThisWorkbook.Worksheets(“Color”)
  このExcelのColorというシートの意味

💻 Cells(r, 1)
  A列のr行目という意味

💻 Interior.ColorIndex = r
  セルの色番号はrという意味
  ※rは変数でFor ~ Nextの中の処理なので数字が入っています。

💻 MsgBox  ”処理がおわりました
  ”処理がおわりました☆”というメッセージを出す

まとめ

以上、ExcelVBAのColorIndexで色番号一覧表を作成する方法をお伝えしました!
もっとマニアックなことを言うと、1つの色はRGB関数で表現できたりもします😇
これはよくhtmlでも使われていますよね!
それはまた別の機会にご紹介したいと思います!

最後まで読んでくださりありがとうございました!