FC2ブログ

Excelじゆうちょう

Excelのお絵描きツール『りっぷ2(りっぷつぅ)』のサポートページ、まずは「はじめに」をご覧ください。 [NewEntry] [Admin]

記事更新カレンダー

09 « 2018-10 « 11
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

やたらに多いカテゴリ

比較的新しい記事

新しいコメント

ありがたいブログ拍手

拍手コメント一覧(拍手はしない)

さみしいトラックバック

申し訳ないプロフィール

申し訳ない

管理人  [ 申し訳ない ]

pxivもやってます
リンクの一番上からのぞきに来てください
※閲覧にはユーザー登録が必要です

RSSってなんぞ?

広告は消せないらしい

FC2Ad

        --------       スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

        2012-02-03       ブックの外観の保持

ごめんなさい、また間違った情報をお伝えしていました。
問題の記事は こちら 、新Excelになってカラーインデックスが…(中略)…マクロからしか使えなくなっていますと書いている部分です。

いいえ、使えます。

Excel2007ではOfficeボタンから、Excel2010ではファイルタブから、Excelのオプションの中で設定できます。

↓Excel2007のExcelのオプション↓
ブックの外観の保持(2007)

↓Excel2010のExcelのオプション↓
ブックの外観の保持(2007)

左カラムで保存を選択し、一番下のブックの外観の保持でカラーインデックスの色を設定できます。
ここの色ボタンをクリックすれば、設定画面が表示されます。

↓Excel2007の色↓
色(2007)

↓Excel2010の色↓
色(2010)

旧Excelとほぼ同じ画面ですね。
ちなみに、旧Excelではこのような画面です。

↓Excel2003ではこれ(カスタマイズ済み)↓
オプション 色

それにしても、以前は探して見つからなかったのに…
ブックの外観の保持なんていう名前で別物だと判断してしまったのかもしれません。
スポンサーサイト

        2011-12-06       生き残っていたカラーインデックス

セルの塗りつぶしの互換性 の記事でカラーインデックスはマクロ以外では使えなくなったと書きましたが、実際は間違いでした。
コメントの機能でカラーインデックスが生き残っていることに先日気がつきました。

↓新Excelのコメントはここ↓
コメントの挿入

↓右クリックで書式設定を変更↓
コメントの書式設定

↓塗りつぶしの色↓
コメントの書式設定(塗りつぶしの色)

↓線の色↓
コメントの書式設定(線の色)

↓フォントの色も↓
コメントの書式設定(フォントの色)

どうしてこの機能にだけ…?
新しいカラーパレットの実装忘れな気がしてならないのは、私の思いすごし。
これがないととんでもない不幸が訪れるんです、きっと。



これにて、Excel月刊は終了とします。(月またいじゃったのを気にしたら負け)
FC2ブログの大規模なサーバーダウン の前の更新ペースで頑張ってみました。
以前はこんなのを1年半近く続けていたなんて、よくもまあなんて思います。
それでも、ペースは落ちてももう2年以上続いているのにも我ながらよくもまあなんて思います。

おつかれさま私、これからも申し訳ないともども Excelじゆうちょう をよろしくお願いいたします。

        2011-11-29       互換カラーパレット作成

旧Excelと新Excelのカラーパレットにはほとんど互換性がなく、赤、黄、黒、50%黒以外の色は正しく保存されないことがわかりました。
これではあまりにも不便すぎます。
この不便を少しでも解消するために、ひとつ工夫をしてみようと思います。

新Excelのカラーパレットの色を旧Excelのカラーインデックスに登録します。

そうすれば、旧Excelのカラーインデックスが56色なのに対し、新Excelのカラーパレットの色が70色ありますので、少なくとも80%は互換性が取れたことになります。
問題はどの色をチョイスするかです。

↓私の独断と偏見で作ったカラーパレットです↓
互換カラーパレット

↓この色を使用しました↓
カラーインデックス登録色

これをブックのColorsプロパティに登録しておけば、ほぼほぼ互換性のとれたパレットになるはずです。
それを実行するマクロは以下になります。


'【コードウインドウ】
Public Sub setColors() 'カラーインデックスを新Excelのカラーパレットに合わせる
Application.ScreenUpdating = False '画面更新オフ
With ActiveWorkbook 'アクティブブックを対象
  .Colors(1) = 0
  .Colors(2) = 16777215
  .Colors(3) = 255
  .Colors(4) = 2704713
  .Colors(5) = 14994616
  .Colors(6) = 682978
  .Colors(7) = 65535
  .Colors(8) = 3969910
  .Colors(9) = 12611584
  .Colors(10) = 9944516
  .Colors(11) = 15853276
  .Colors(12) = 11851260
  .Colors(13) = 13082801
  .Colors(14) = 12379352
  .Colors(15) = 14474460
  .Colors(16) = 8421504
  .Colors(17) = 8210719
  .Colors(18) = 5066944
  .Colors(19) = 4626167
  .Colors(20) = 14806254
  .Colors(21) = 5880731
  .Colors(22) = 12419407
  .Colors(23) = 10642560
  .Colors(24) = 13020235
  .Colors(25) = 13995347
  .Colors(26) = 192
  .Colors(27) = 49407
  .Colors(28) = 5296274
  .Colors(29) = 15773696
  .Colors(30) = 6299648
  .Colors(31) = 10498160
  .Colors(32) = 14470546
  .Colors(33) = 9592886
  .Colors(34) = 2646607
  .Colors(35) = 1055517
  .Colors(36) = 411543
  .Colors(37) = 6438948
  .Colors(38) = 5287936
  .Colors(39) = 5321024
  .Colors(40) = 2303331
  .Colors(41) = 14136213
  .Colors(42) = 10213316
  .Colors(43) = 9420794
  .Colors(44) = 3421846
  .Colors(45) = 9737946
  .Colors(46) = 12040422
  .Colors(47) = 14336204
  .Colors(48) = 12040119
  .Colors(49) = 14610923
  .Colors(50) = 5540500
  .Colors(51) = 12900829
  .Colors(52) = 14281213
  .Colors(53) = 14408946
  .Colors(54) = 8014176
  .Colors(55) = 15523812
  .Colors(56) = 4210752
End With
Application.ScreenUpdating = True '画面更新オン
End Sub


コードがだらだらと長くて申し訳ないです。
拡張子が.xlsじゃないとだめなんですっていう人はぜひお試しください。

↓旧Excelで開くとこんな感じ↓
互換カラーパレット(オプション)

        2011-11-15       新旧Excelカラーパレット比較

↓旧Excel色見本↓
旧カラーパレット(RGB値)

↓新Excel色見本↓
新カラーパレット(RGB値)

カラーパレットの同じもの探し の答え合わせです。
ひとつずつ見比べて確認するのは面倒です。
ここはひとつ自動的に見つけられるようにしてみましょう。
マクロを使ってもいいのですが、条件付き書式でやっちゃいましょう。
事前準備として、旧Excelで作っていたカラーパレット一覧のシートを新Excelのほうに持ってきます。
新Excelなら旧Excelの書式に互換性があります、逆はだめです。

↓旧Excelカラーパレットのこのセル範囲↓
条件付き書式、範囲(旧Excel)

↓太字、斜体、二重下線↓
条件付き書式、数式(旧Excel)

旧Excelカラーパレットの設定は上、新Excelカラーパレットの設定は下です。
こんがらがってしまわないよう気を付けてください。

↓新Excelカラーパレットのこのセル範囲↓
条件付き書式、範囲(新Excel)

↓太字、斜体、二重下線↓
条件付き書式、数式(新Excel)

他方のカラーパレットに同じ値があるセルの文字が太字、斜体、二重下線になります。
新Excelのカラーインデックスはおまけ以下です、信用しないでください。
また、カラーインデックス、RGB値(10進数、16進数)は取り得る値の範囲が異なりますので、条件付き書式は1種類で仕上げています。

↓旧カラーパレットには同じ色が複数ある↓
新Excelで旧カラーパレット

↓新カラーパレットには原色の緑と青がない(マゼンタとシアンもない)↓新Excelで新カラーパレット

いかがでしょうか?
互換性のある色は、赤、黄、黒、50%黒の4色だけだということがわかりました。
原色ですらほとんど互換性がありません。
それ以上に驚いたのが、新Excelのカラーパレットには白がなかったということです。
ですが、ほとんどのかたのExcel2010では白が表示されているはずです。
これは私のPC環境に原因があります。

私はセルの塗りつぶしなしと白の塗りつぶしを区別するため、Windowsの設定でウインドウの色をごく薄い灰色に設定しています。
(真っ白だと目に痛いからということもあります)
Excelは塗りつぶしなしの色をこのウインドウの色で表現するため、私のPC環境下にあるExcelではこのような色になってしまいます。

その証拠に、仮にウインドウの色を変更してみると…

↓全力の赤↓
ウインドウの色とデザイン

↓全力で赤↓
背景色は塗りつぶしなしの色

うわあー、直視できない!
そんなわけで、旧Excelでは白があったのに新Excelになって白がなくなってしまいました。

        2011-11-08       セルの塗りつぶしの互換性

Excel2003からExcel2007にバージョンアップして、たくさんの機能が追加されました。
その反面、このバージョンアップは旧Excelの形式であるXLSファイルと互換性のない機能が追加されたとも言えます。

その中でもっともよく遭遇するのが、セルの塗りつぶしではないでしょうか。
というのも、新Excelになってカラーインデックスが使えなくなってしまったからです。
厳密には、機能自体は残っているのですが、マクロからしか使えなくなっています。
それだけならまだしも、カラーパレットまで一新されています。
これはつまり、旧Excelのカラーインデックスから消えてしまった色は互換性がなくなってしまったということです。

文章だけではわかりにくいですね、具体例で見てみましょう。

↓黄で塗りつぶして、保存↓
セルの塗りつぶし、黄

この色は新旧Excelのカラーパレットにありますので、そのまま何事もなく保存できます。

↓オレンジで塗りつぶして、保存↓
セルの塗りつぶし、オレンジ

↓互換性チェック!↓
セルの塗りつぶし、互換性チェック

たった1セルの塗りつぶしをしたただけなのに注意されてしまいました。
この色は旧Excelのカラーインデックスに存在しないという内容が書かれています。
存在しない色はカラーインデックスにある近い色に変換されます。
そのため、別の色が同じ色になってしまったり、違う色合いになってしまったりします。

【補足】
新Excelのセルの塗りつぶしではカラーパレットの他に「その他の色」という項目あり、これを使用すれば任意の色を指定することができ、互換性のある色で塗りつぶしをすることができます。
しかし、ここでは普段使いの場合を想定して、デフォルトで用意されているカラーパレットに的を絞って話を進めます。
あと、この記事では旧Excelを代表してExcel2003、新Excelを代表してExcel2010を用いて解説しています。
Excel2002はExcel2003とほとんど同じ、Excel2007はExcel2010とほとんど同じと考えて大丈夫です。

それでは、オレンジの他にはどの色に互換性がないのでしょうか。
実際にどれくらい違うのかを見比べてみましょう。

↓ちくちく1セルずつ塗りつぶし↓
旧カラーパレット

↓ちくちく1セルずつ塗りつぶし↓
新カラーパレット

かなり違いますね、カラーパレットの色数だけでも56色から70色に増えています。
とはいえ、似た色もあって目で見ただけでは完全に同じ色かどうかは見分けにくいものもあります。
これを調べるには、色を数値化したRGB値を比べるのが効果的です。
RGB値はマクロで調べることができます、以下にRGB値を取得するマクロを用意してみました。


'【コードウインドウ】
Private Sub getColorIndexList()
Dim For_r As Long, For_c As Long
Dim Lng_rgb(3) As Long
Application.ScreenUpdating = False '画面更新オフ
For For_r = 1 To 21 'カラーパレットと同じエリアを繰り返し
  For For_c = 1 To 10 '←旧Excelのカラーパレットの場合は終了値を10でなく7にすること
    Lng_rgb(0) = Cells(For_r, For_c).Interior.Color 'セルの色
    Lng_rgb(1) = Lng_rgb(0) Mod 256 '赤成分
    Lng_rgb(2) = (Lng_rgb(0) \ 256) Mod 256 '緑成分
    Lng_rgb(3) = (Lng_rgb(0) \ 256 \ 256) Mod 256 '青成分
    If Lng_rgb(1) + Lng_rgb(2) + Lng_rgb(3) < 380 Then '色が濃ければ
      Cells(For_r, For_c).Font.Color = vbWhite 'フォントの色を白
    Else
      Cells(For_r, For_c).Font.Color = vbBlack 'フォントの色を黒
    End If

    Select Case For_r Mod 3 '行番号で分岐
    Case 0
      Cells(For_r, For_c) = "'" & Right("00000" & Hex$(Lng_rgb(0)), 6) '16進数RGB値
    Case 1
      Cells(For_r, For_c) = Cells(For_r, For_c).Interior.ColorIndex '10進数RGB値
    Case 2
      Cells(For_r, For_c) = Lng_rgb(0) 'カラーインデックス
    End Select

  Next For_c
Next For_r
Application.ScreenUpdating = True '画面更新オン
End Sub


黄の文字は、実行前に変更してください。
赤の文字は、フォントの色を調整しています。
青の文字は、RGB値とカラーインデックスを取得しています。

↓旧Excel色見本↓
旧カラーパレット(RGB値)

↓新Excel色見本↓
新カラーパレット(RGB値)

各色のまとまりは、上からカラーインデックス、RGB値(10進数)、RGB値(16進数)です。
新Excelのカラーパレットのカラーインデックスは、近い色の値を表示されていますので正確ではありません。

さあ、間違い探しならぬ同じもの探しです。
ふたつのカラーパレットで同じ色はどこにあるでしょう?

 | HOME | 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。