• ベストアンサー

Excel 棒グラフ的な、セルへの自動着色

通常のグラフの機能を使用するのではなく セルに着色またはハッチングパターンを自動的に記入する方法を教えて下さい 例えばA11に1の数字が入っていたら、A1からA10まで10マスが塗られます。 B11に5の数字が入っていたら、B6からB10までが。C11が1だったらC10が一マスだけ着色されます。 つまり11行めに入った数字を読み取り、同じ列の1から10までを棒グラフエリアとして10行目をベースに上に塗っていき、あたかも棒グラフの様な表現にしたいのです。 宜しくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.6

VBAでやるなら 11行目に計数があるとして Sub test02() n = 1 For j = 1 To 10 For i = 1 To Int(Cells(11, j) / n) Cells(10 - i + 1, j).Interior.ColorIndex = 5 '青 Next i Next j End Sub A列からJ列(第10列)までの例です。 n=1の1は最高値の10分の1を指定するとかして 全列1から10に収まるような計算を考えて、nを決めてください。異常に大きい列の値は、頭打ちの値を考える 必要もあるかも知れません。

kinco
質問者

お礼

imogasiさん再度ありがとうございます このVBA単純明快で初級者のわたしにも理解しやすいです。 予めセルをいじらなくてもいいので 重宝します。 前回もVBAでお世話になっていたことを思い出しました。 ありがとうございました。

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

その他の回答 (5)

  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.5

参考までにですがrept関数というのがあります。 =REPT("■",A11) でA11に6という数字が入っていたなら「■■■■■■」という風になります。書式設定の配置で方向を90度にするなどしてやればグラフのように見えます。

kinco
質問者

お礼

nihonlinnさんありがとうございます 求めていた回答にもっとも近いです REPT関数は知っていました。 水平ならすでに自分でも解決していたんです なるほど~“書式で90°”は気がつきませんでした 早速やってみました 残念ながらセルをまたいで上に表示してくれません セルの高さを高くすれば表示されますが、本来の意図と食い違います 水平だとセルをまたいでいくらでも右に伸びていってくれるんですが・・・ がんばってみます

すると、全ての回答が全文表示されます。
  • Mozisan
  • ベストアンサー率43% (130/299)
回答No.4

何の仕込みもなしに、表示させることはできないと思いますが。 条件付き書式設定がだめなら、関数を入れて、ある数値以上なら文字表示するとか。。。 でも、これも仕掛けですよね。 セルに仕込みたくないなら、VBAですが、 くわしい方の回答を待たれては?

kinco
質問者

お礼

Mozisanさん 再度ありがとうございます 確かにVBAかもしれません

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.3

(サンプル・データ) A11=2、B11=3、C11=6、D11=4 E11=5、F11=6とか (書式の設定) (1)A1:A10を範囲指定する。 (2)書式-条件付き書式-数式が-(数式ボックスに) =ROW(A1)+A$11>10と入れる。A$11のAの前には $を入れないこと。 (3)書式-パターン-セルの色を指定(例で赤)-OK-OK (4)これでA9:A10が赤色になります。 (書式の複写) A1:A10を範囲指定しておき、右下隅の+をF10まで引っ張る。 (結果)これでB11からF11までの数に応じてセルの 数だけセル10から上に色が付きました。 後は列幅を統一すれば良い。

kinco
質問者

お礼

imogasiさんありがとうございます #1さんのやりかたと比較すればこの方が効率がいいのかも知れません “条件付き書式”もこうやって使うことができるのですね 助かりました!

すると、全ての回答が全文表示されます。
  • Mozisan
  • ベストアンサー率43% (130/299)
回答No.2

メニューバー「書式」-「条件付き書式」を使います。 「セルの値が」を「数式が」に変え、右のテキストボックスに「=$A$11>=1」(A10の場合)と入力し、「書式」ボタンをクリック、「パターン」タブでセルの塗りつぶしを設定します。 11行の数値で各列にグラフ化したいなら、$A$11をA$11としておいて、A列の1~10まで設定後、B列以降にコピー、ペーストすれば良いかと思います。

kinco
質問者

お礼

素早い回答ありがとうございます 予めセルに仕掛けを作っておかずに済む方法はないでしょうか?

すると、全ての回答が全文表示されます。
  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.1

なぜ、グラフを使わないのか良く分かりませんが、以下の方法で可能かと。(但し、手間がかかりますが。) A1からA10までの各セルに条件付書式を設定すればできます。 A1セルに「数式が」を選択して数式を「=$A$11>=10」とし、書式を設定。以下A2セル以降10を一つずつ数値を減らした、同じ条件付書式を設定する。 B列以降$A$11を$B$11に変更して、同様に。

kinco
質問者

お礼

素早い回答ありがとうございます グラフを作るのがメイン目的ではなく、 巨大な商品受発注表の特定のセルの数値の大きさを イメージ化するために数字の上のセルを塗りたいのです。 予めセルに仕掛けを作っておかずに済む方法はないでしょうか?

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

関連するQ&A