• ベストアンサー

Excelで白黒で256階調出す方法

 Excelのあるセルに0~255のいずれかの数字を入力すると、そのセルがその数字にあった白黒での輝度の色で表示されるようにしたいのですが、そんなことできるのでしょうか?  ただ、色が出るのは数字を打ち込んだセル自身ではなく、別のセルになってもかまいません。  ただし、色を変化させたいのは単発ではなく、縦横500×500位の画素が欲しいと思っています。  どなたか良きアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.4

#3ですが・・・ 先に提示したコードで、例えば、色の番号を入力するとき、万が一間違って 128- など"-" が後に付加 されると実行エラーになりますので、下記のコードと差し替えてください。 使用例は、例えば、B1に0、B2に10 を入れ、この2つを選択して下にフィルドラッグしてください。 Public Fg As Boolean Private Sub Worksheet_Change(ByVal Target As Range) Dim Rng As Range Set Target = Intersect(Range("A1:IV500"), Target) If Target Is Nothing Then Exit Sub If Selection.Rows.Count > 500 Then Exit Sub For Each Rng In Target   If Fg = False Then setplt   If IsNumeric(Rng.Text) Then     Rng.Interior.Color = RGB(Abs(Rng * 1), Abs(Rng * 1), Abs(Rng * 1))   ElseIf IsEmpty(Rng) Then     Rng.Interior.ColorIndex = xlNone   End If Next Rng End Sub Sub setplt() Dim N As Integer Dim C As Integer For N = 1 To 56   C = Int(255 / 55 * (N - 1))   ActiveWorkbook.Colors(N) = RGB(C, C, C) Next N Fg = True End Sub

chal
質問者

お礼

 お礼が大変遅くなり、申し訳ありません。ご回答、ありがとうございました。  256段階での表示、確認しました。使用させていただきます。  また何かありましたら、よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

次の手順で操作すると、ご希望の機能になると思います。 ・使用しているシートのシート名タブを右クリックして「コードの表示」を指定します。 ・開いたコードウィンドウに下記コードをコピーして貼り付けます。 ・Alt+ Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。 ・メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を  「中」にして[OK]します。 ・以上で設定完了です。  500行より上の任意のセルに0~255の数値を入力してみてください。 相応のコントラストで塗り潰されます。 シート全体とか、行を選択し、 DEL したときは、色を残し、数値だけをクリアします。 小範囲を選択し、 DEL した場合は、その範囲だけを「塗り潰し無し」に戻します。 多分、こういうことではないかと思いますが、如何でしょうか。 Public Fg As Boolean Private Sub Worksheet_Change(ByVal Target As Range) Dim Rng As Range Set Target = Intersect(Range("A1:IV500"), Target) If Target Is Nothing Then Exit Sub If Selection.Rows.Count > 500 Then Exit Sub For Each Rng In Target   If Fg = False Then setplt   If IsNumeric(Rng.Text) Then     Rng.Interior.Color = RGB(Rng.Value, Rng.Value, Rng.Value)   ElseIf IsEmpty(Rng) Then     Rng.Interior.ColorIndex = xlNone   End If Next Rng End Sub Sub setplt() Dim N As Integer Dim C As Integer For N = 1 To 56   C = Int(255 / 55 * (N - 1))   ActiveWorkbook.Colors(N) = RGB(C, C, C) Next N Fg = True End Sub

chal
質問者

お礼

 お礼が大変遅くなり、申し訳ありません。ご回答、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • hakone
  • ベストアンサー率54% (40/73)
回答No.2

>白黒56段階での表示は可能なのでしょうか? マクロを使えば可能です。 こんなんでヒントになりますか? (カラーパレットを変えておく必要があると思います) #ただ、横500列はEXCELでは無理ですよ。 #256列しかありません。 Sub test()  For i = 1 To 56   ActiveWorkbook.Colors(i) = RGB(i + 99, i + 99, i + 99)   Cells(i, 1).Interior.ColorIndex = i  Next End Sub

chal
質問者

お礼

 お礼が大変遅くなり、申し訳ありません。 ご回答、ありがとうございました。  56段階で表示できました。また、列に関するご指摘もありがとうございました。  また何かありましたら、よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • hakone
  • ベストアンサー率54% (40/73)
回答No.1

こんにちは。 残念ながら、無理です。 Excelは同時には56色しか表示できません。

chal
質問者

お礼

 お礼が大変遅くなり、申し訳ありません。 ご回答、ありがとうございました。

chal
質問者

補足

 早速のご回答、ありがとうございます。  追加質問で申し訳ありませんが、では白黒56段階での表示は可能なのでしょうか?  あるいは、たとえば100~155の間の輝度に絞り、この間での56階調を表示するなどは可能なのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル2007のアクティブセルについて

    エクセル2007について、質問します。 Ctrlキーでセルを複数選びんだ場合、以前は、選んだセルに色がついたのですが、 いつのまにか設定が変わったのか、色に変化がありません。 飛び飛びに選んだセルに同じ数字を入力しましたら、確かに入力はできます。 ただ、以前のように、選んだセルに色がつかないため、どのセルを選んだのか、 わからなく、不便です。どなたか、選んだセルが解るように表示できる設定を、お教え頂けますでしょうか。 よろしくお願い致します。

  • エクセルのセルに条件付き表示方法

    エクセルでセルA1に20と入力して、セルB1に計算式を入れていて表示された値がセルA1に入力した数字と違う場合は、数字の色が違う色で表示されるか、セルの色が変わるとかできないでしょうか? Woodでは条件付き書式とか言うのでできますけど・・・ 宜しくお願いします。

  • エクセルで出来れば教えてください。

    エクセルのセルに数字を投入します。 ただ、できれば表示させる文字を変化させたいです。 数字の1でも2でも3でも・・・入力しても数字が入力された場合には◇を表示させたいと考えています。 なお、数字が入力されない場合でも空白や○、□などの表示をさせたいのですが、方法はありますか? 教えてください。

  • エクセル2003で

    エクセル2003で セルに数字1を入力すると0.01となります。1を入力して1と表示したいのですが・・・それと、セルに塗りつぶしをしようとすると、色の表示がされず、shift+Alt+printscrrenを押すのですが、電源を切って再起動してまたエクセルを開くとまた塗りつぶしがされず同じ作業をまたしなければなりません、どうすればよいのでしょう。教えてください。

  • エクセルで20040819という数字の08を抽出し表示させる方法は?

    エクセルで20040819という数字の入力されたセルから、08を抽出し別のセルに表示させる方法はありますでしょうか? よろしくお願いします。

  • エクセル関数を使いこの様なことができますか?

    こんにちは エクセルのあるセルに数式(又は関数)を入力し、別のセルに数字を入力したら、セルの塗りつぶしの色が設定しておいた色に変わるようなことはできないでしょうか? (例えば、C1には当初は何も入力されておらず、そのC1にある数字を入力するとA1のセルの色が赤に変わるようなことを考えています。なお、色を変えたいセル自身には数字が入力されている場合といない場合と二通りあるため、いずれの場合も対応できるようにしたいのです。 つまり、初期状態では、A列(色を変えたいセル列)には数字が入ったセル、入っていないセルが混在しており、C列(ここに数字が入力されるたびにA列の対応する行のセルの色を変えたい)には何も入力されていない。この状態で、任意のC列のあるセルに数字を入力すると同じ行にあるA列のセルの色を変えたい、ということをしたいのです。) 具体的にA列にどの様な数式を入力すればよいかを教えて下さい。 (或いは、そのようなことをするための式(関数)はA,C以外の列のセルに入れる必要があるかもしれませんが(例えばB列)、それでもかまいません) よろしくお願いします。

  • エクセル

    エクセルで下記具体例のような方法を教えてください。 具体例 シート1のD4に5を入力 別のシートのB2~19に入力している5の数字のセルが赤に シート1のE4に10を入力 同じく別シートのB2~19に入力している10の数字のセルが青に シート1のF4に3を入力 同じく別シートのB2~19に入力している3の数字のセルが黄色に なるような方法を教えてください。

  • Excelでこんなことってできますか?

    独学でExcelの勉強中なのでいろいろと問題を考えて試しています。 本を参考にしても分からないことがあるのでアドバイスをお願いします。   今、元データに使用して勉強しているのはロト6をモチーフにした6つの数字です。 第1回~第10回までの当選数字を回ごとに横に6つ並べてセルに入力しました。 この表から例えば1という当選数字を検索して、その1を含めて同じ回に当選した6つの数字を縦横43個のセルの表にカウントさせたいと思っています。 仮に第1回から第10回までに1を含めた回が 第1回1,2,5・・・ 第6回1,3,5・・・ 第8回1,2,7・・・ と3回あったとしたら    1|2|3|4|5~43 1|3  2  1     2 2|2  2       1 3|1     1    1 4| 5|1  1      1 ~ 43 と表示される表を作りたいのです。 なかなか素人の表現で分かりづらいかと思うのですが、 1つのセルに関数で計算式を作り、あとはコピーしたいと思います。 Excel2000です。 どなたかよろしくお願いします。

  • エクセルの白黒の反転で困っています。

    エクセルの白黒の反転で困っています。 セルの下地が黒で文字が白になっているんですがどうやっても元に戻りません。 どうすれば元のセルに戻りますか? 下地白にして文字黒やら赤やらにしても下地が黒の文字が白のままです。 他のセルコピーして貼り付けても文字がそのセルの中身になるだけで色は変わりません 直し方教えてください。

  • エクセル 特定の範囲の数字に 連動させてセル色の変化をしたいのですが・・・

    エクセル 特定の範囲の数字に 連動させてセル色の変化をしたいのですが・・・ 以下のセル色の変化をしたいのですが・・・ 入力エリア 1 B9:K9 入力エリア 2 B11:K11 があります。 セル範囲 B3:N5 (B3:B5はセルを結合)には 順番に以下の数字が すでに入力済みです。 0 3 6 9 12 15 18 21 24 27 30 33 36 2 5 8 11 14 17 20 23 26 29 32 35 1 4 7 10 13 16 19 22 25 28 31 34 上の表範囲のセル色を 入力エリア 1 に 入力された数字が入っているセルは 赤       2                     青 に変更したい。 どうか よろしくおねがいします。

このQ&Aのポイント
  • パソコンのバックアップ方法について質問があります。写真や音楽、エクセル、メール(Thunderbird)などのデータをどのようにバックアップすれば良いのか分かりません。
  • データ用CD-Rは使えるのか、USBメモリを使って統一する方法はありますか?そして、バックアップの内容量はどれくらいなのかもよく分かりません。
  • バックアップができるか不安なので、アドバイスをお願いします。
回答を見る

専門家に質問してみよう