わたしの日常に価値はありますか?

24日目 「色」について深く考えよう【30日間1日1本マクロ生活】

30日間1日1本マクロ生活、24日目です。

マクロを書く準備は、0日目に記事を書きました。

マクロを書く準備早速マクロを書こうと思ったんですが、マクロって何?食えんの?って人もいると思うんで、丁寧に行こうかな、と。マクロってのは、通常は人間の手でやるような作業を、プログラムを書くことで機械に自動的にやらせるってことです。Excelの場合はVBA(Visual Basic for Application)という言語を使ってマクロを書きます。まずはその準備を。Excelを起動すると、ワークシートが現れます。ここでキーボードの「ALT+」を押してください。はキーボードの上方にあるファンクションキーの11番です。すると、このウィンドウが開...
0日目 マクロを書く準備をしよう【30日間1日1本マクロ生活】 - わたしの日常に価値はありますか?

「色」について

今日は「色」について深く考えてみたいと思ってます。

一口に「色」と言いますが、大雑把に「光」の「色」と「インク」の「色」に分かれます。

インクの三原色

分かりやすく言うと、プリンタの色です。

シアン(青のような色)、マゼンタ(明るめの紫)、イエロー(黄色)の3色がインクの三原色です。

この三色を混ぜることで、いろんな色を作ることができます。

どのくらいの色が作れるかというと、プリンタから印刷される写真を考えてもらえれば分かるかと思います。

そう、写真が出せるくらいの色です。すごいですよね。

光の三原色

光の色とは、テレビの画面の色であったり、映画の画面の色であったり。

パソコンの画面の色も光の色ですね。

光の色は、赤と緑と青の3色で作られています。

赤と緑と青を混ぜることで、いろんな色を表現することができます。

これも、テレビや映画やパソコンの画面で写真が映し出されることを考えると、わたしたちの眼で区別がつくレベルでは「全ての色」が表現できると考えて過言ではないでしょう。

とりあえずコードを


Sub グラデ()
    For i = 1 To 255
        Cells(i, 1).Interior.Color = RGB(i, 0, 0)
        Cells(i, 2).Interior.Color = RGB(0, i, 0)
        Cells(i, 3).Interior.Color = RGB(0, 0, i)
    Next i
End Sub

解説します。

何をしているのか

セルのインテリアの色を、細かく変えているマクロです。

「Cells(i, 1).Interior.Color」は、先日の「ColorIndex」とは少し違います。

「ColorIndex」は、Excelが持っている56色のパレットです。

ここに詳しくのってましたので、ぜひ読んでみて下さい。

で、「Color」はそれよりもずっと細かく色を設定できるんです。

RGB(赤,緑,青)

Colorの色設定は通常数字でやるんですけど、「16711680番の色」とか言われても、これが青だなんて分からないでしょ。

だから、「RGB(赤,緑,青)」の形で指定することができる機能があるんです。

赤、緑、青の所に0~255の256段階で数字を入れることで、それぞれの色の強さを指定できるんです。

ですから、A1からA255までに強さ1の赤から強さ255に赤まで一つずつ入れていくマクロを書いてみたんです。

B列は緑、C列は青でやってみました。

実行結果

マクロを記述するウィンドウの「Sub」と「End Sub」の間にカーソルを置いて、画面上方の再生ボタン的なアイコン(右向きの三角形)をクリックするか、[F5]キーを押して実行します。

う~ん。黒いっすね。

まあ、1から15までじゃほとんど違いが分からないレベルです。よく見ると色がうっすら変わってますけどね。

超☆縮小してみました。

グラデですよね。黒から赤へ、黒から緑へ、黒から青へと色が変わっていくさまが見えます。

この組み合わせで、256の3乗、つまり16777216通りの色を表現できるんです。

いやあ、すごいですよね。

Excelは便利

悔しいですが、Excelは便利です。

Microsoftにお金を払うのは癪でしょうがないんですが、Excelばかりは仕方がない。

マクロを書くようになると、Excelからは離れられないですね。

30日間、頑張ります。

モバイルバージョンを終了