スポンサーリンク
はじめに
Excel2007以降で、旧来のExcel2003までの色(カラーパレット)を使えるマクロを作った。
セルの色、文字の色、シート見出しの色に対して、Excel2003までの色を使うことができる。
また、自分で好きな色を追加・変更といったカスタマイズも、ちょっと難しいけどできる。
こういうのは通常「アドイン」という形で配布するものなのかもしれないが、どうも私はアドインというのは、ライトユーザーには使っていきにくいものかと思っている。
また、導入後のカスタマイズ等にも適していないと思う。
そこで今回、マクロのファイルを配布する方式でやってみることにした。
以下では、まずこのマクロの基本的な導入方法を述べる。
次に、マクロの中に組み込まれた色を変えたり追加したりするカスタマイズ方法を述べる。
次に、このマクロを作った背景とか、そもそもExcel2003までの色がどうたらこうたらとは何のことかとか説明を書く。
最後に、愚痴半分で、古いバージョンのExcelへの配慮はやめたいという意見を書く。
導入方法~使い方
(1)Excelに個人用マクロブックを用意しておく。
個人用マクロブックについてはこちら。
(2)このファイルをダウンロードし、Lhaplusなどのファイル圧縮・解凍ソフトにより解凍する。
(3)Excelで、ショートカットキー<Alt+F11>でマクロの画面(VBE)を開く。
「VBAProject(PERSONAL.XLSB)」をクリックしてアクティブにしておく。
(4)「ファイル」→「ファイルのインポート」で、先ほど解凍したフォルダに保存されているファイル(color2003Form.frm)を開く。
これにより、このマクロ用ファイルがインポートされる。
(5)「標準モジュール」をクリックして、「挿入」→「標準モジュール」としてモジュールを追加する。
既存の標準モジュールを使えるなら、それを使えば良い。
そのモジュールに、下記のコードをコピペする。
1 2 3 |
Sub color2003FormShow() color2003Form.Show vbModeless End Sub |
(6)上記のマクロ「color2003FormShow」を、リボンなりクイックアクセスツールバーなりに追加するとか、ショートカットキーを割り振るとかする。
(7)Excelの操作画面において、マクロ「color2003FormShow」を実行すると、フォームが出る。セル色・文字色・シート見出し色のどれに色を使うかチェックボックスから選択して、好きな色のボタンを押せば良い。
カスタマイズその1:既存の配色を変える場合
(1)まずVBE画面の「color2003Form」を右クリックして「コードの表示」を押すと、マクロのソースコードが表示される。
(2)その中に、こうズラッとRGBという色の値が書いてあるけど、この中で変えたいもののRGBの値を書き換える。
RGBっていうのは赤・緑・青の組み合わせで色を表現するもので、その値についてはこちらとかを見ればよいかと。
カスタマイズその2:色ボタンを新しく追加する場合
(1)VBE画面の「color2003Form」をダブルクリックして、ボタン配置とかを直接変更できる画面を開く。
(2)既に配置されているボタンをどれかクリックし、Ctrl+C → Ctrl+Vでコピペして新しいボタンを増やす。
→新しいボタンをドラッグして適当な位置に配置する。
→この新しいボタンは「CommandButton57」とかいう名称になると思うが、その名称を確認しておく。
というか、最初の文字は「CommandButton」でなければならない。
(3)新しいボタン(名称が「CommandButton57」とする)をダブルクリックしてみると、ソースコードが次のように表示されるはず。
1 2 |
Private Sub CommandButton57_Click() End Sub |
このコードの1行目・2行目の間に「Call colorInput(CommandButton57)」と追加して、次のコードへと書き換える。
もちろん、「CommandButton57」が「CommandButton58」だったりしたら、追加するコードは「Call colorInput(CommandButton58)」と対応して変える。
1 2 3 |
Private Sub CommandButton57_Click() Call colorInput(CommandButton57) End Sub |
(4)ソースコードの最上部の方に
1 2 3 4 |
.Add RGB(0, 0, 255) '青 End With colorNum = colorCollect.Count |
というようなコードがある。
「End With」の直前の「.Add RGB( ◯◯◯ ) 」を行ごとコピー・ペーストしてもう一行増やす。
その新しい行のRGB値を、自由に書き換える。
今回のマクロを作った背景
互換性配慮
最近の人には縁がない話かもしれないが、Excelの機能・使用感は、バージョンが2003から2007になってガラリと変わった。
そしてExcel2007以降の新しいバージョンを持つ人は、2003までのバージョンしか持たない人のことを考えて、互換性の配慮というものをさせられた。
今どきの職場ではExcel2003までのバージョンなんてもう使わなくなったのだろうと思うが、今でもこの互換性の配慮をさせられる職場はあるのだろうか。
関数などについては、旧バージョンにはない関数をだいたい覚えておけば互換性配慮はできた。
しかし文字やセルの色については、配慮が非常に難しい。
使える色の集合をカラーパレットとかいうけど、Excel2003までと2007以降では、上図のようにカラーパレットが異なる。
Excel2007以降の新しいバージョンのカラーパレット(以下、「新パレット」と書く)には、Excel2003以前の古いバージョン(以下、「旧パレット」と書く)と共通する色は僅かしか含まれていないため、古いバージョンとの互換性を保てる色(以下、「互換色」と書く)を使うのが非常に難しいのだ。
そして旧パレットでは、色の種類が少ない。そのため、私が新パレットでつけた色は、古いバージョンのExcelでは私の想定と違う色に化けてしまったりする。
Excelのバージョンが新しくても古くても同じ色で表示されるように塗るというのは想像以上に難しくて、かなり気を使わされた。
条件付き書式なんかは特に、その配慮疲れが最悪だった。これは同じ思いをした人も多いだろう。
この色の互換性の解決には、どうしたら良いか。
新パレットを、互換色を全て含むカラーパレットに変えてしまえないかというのは、当然考えることだ。しかしそれは、相当に難しい。
ググったりすれば、なんかExcelのテーマをイジるとかやり方はそれなりに見つかるけど、手間がかかる割に効果が低い。
互換色をすぐ自由に引き出して使えるという風には、ちとならないのだ。
互換性マクロも公開されているけど・・・
そこでインターネットを探せば、互換色カラーパレットを使える互換性マクロも、当然ながらというか公開されている。
しかしなんだ、難癖つけのようだが、私にはちょっとしたこととかが合わなくて、自分で作ってみたくなった。
旧パレットは、上図のようになっていた。
そして私は、図の②のエリアにある色も、淡い色とかがあって好きで、結構よく使うのだ。
そしてインターネットで公開されている互換色カラーパレットのマクロでは、この②の部分がなくて①の部分だけのカラーパレットのマクロが多いのだ。
そして冒頭でも少し述べたけど、大体のやつはカスタマイズとかやりにくいアドインの形で公開されているし、互換性とか抜きでも自分の好きでよく使う色を組み込んだりしてみたいと思ったので、自分で作ってみた。
互換性配慮なんて不毛だ
この互換色のカラーパレットというやつは、Excel2007以降でも標準機能でつけておいて欲しかった。
個人的には旧パレットの方が、新パレットよりもシンプルで親しみやすい色が多いように思える。
と言うか新パレットは、淡くて綺麗な色も多いが、やたらと濃ゆくて使いにくい色も多く、玉石混交だと思う。
まあ旧パレットも、使わない色も多かったけどね。
互換性に配慮するのがExcelのマナーだとか言われた時代もあるが、もうそんなのは大昔の話だということになっていてほしいと思う。なってるよね?
なってなくても私は、なってるということで通すつもりだ。
私の勤めていた職場でも、なかなか皆の使うExcelのバージョンが最新バージョンに統一されず、Excel2003を使っている人が多くて、互換性配慮させられる時代が長く続いた。
まあ会社としても、短期間にして全てのパソコンを最新バージョンにすることもできないから、ある程度の時間がかかるのは仕方がない。
しかし流石に時代がここまで進めば、Excel2003以前のバージョンを使っている人がいるとすれば、その人達の方が悪いと思う。
彼らは、会社にパソコンやExcelを替えてもらえないのではなく、替える気がないのだろう。
そういう人達のために、新しいバージョンを持っている人たちが、新しいバージョンにのみ存在する便利な機能を使えず封印させられるというのは極めて理不尽だ。
新しいバージョンのExcelには、「テーブル」などの新機能とかSUMIFSなど新関数とか、Excelの使い勝手を大きく変える便利な機能が幾つもある。
それを封印しろなどと言われるのは甚だ心外であり、遠慮なくガンガン使って業務改善していくべきだ。
それらを知らず知ろうともせず、ただ新しいバージョンに馴染めないとか言うだけの者たちに合わせていたら、何もできない。
ちょっと脱線気味になったが、Excelの互換性への配慮などというのは、既に物凄く時代遅れで不毛な話となっていると思う。
スポンサーリンク