- ベストアンサー
Excelの生没年グラフの色変更について。
Excelで、生没年グラフを作成しています。 過去の質問を調べて、「フローティング横棒」というのを使ってみました。 おおむね、これでいけそうな気もするのですが、この先、以下のようなことはできますか? 羅列してある人物は、この後、「出身国」データ、「生年」の優先順位で並べ替え、同じ国の人が固まるようにします。 そのうえで、同じ国の人同士は同じ色の横棒にしたいのです。今は、やり方が悪いのか、すべての棒を同じ色に変えることしかできません。 (例) アメリカ出身のAさん、Bさん、Dさんは赤、日本出身のCさん、Fさんは黄、フランス出身のEさんは紫といった具合。 あるいは、「フローティング横棒」ではできないが、こうすればできる、という方法があれば教えてください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 同じ国の人同士は同じ色の横棒にしたいのです。 複数の棒を一括して変更することはできませんが、次のように操作すれば、比較的簡単に変更が可能です。 1) 棒の色を変更する時、棒をクリックしたと思います。更に、特定の棒をクリックすると、1本だけ選択されます。 2) その棒の上で、右クリックから「データ要素の書式設定」を選び、「パターン」タブで色を指定して「OK」を押します。 3) 続けて、同じ色に変更する棒を選択して「F4」キーを押すと同じ色に変更されます。 4) 「F4」キーを押す操作を必要な回数だけ繰り返します。 ちなみに、「F4」キーは直前の操作を繰り返すショートカットキーです。 「棒グラフで注目個所をわかりやすく強調する」 http://pc.nikkeibp.co.jp/article/NPC/20060217/229655/ 「Excel(エクセル)基本講座:グラフの作成」 http://www.eurus.dti.ne.jp/~yoneyama/Excel/guraf.htm
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
まず再現してみます。下記のようなことかな。 例データ 国 氏名 生年 没年 存命 a X 1890 1935 45 b y 1912 1968 56 c z 1936 1970 34 a u 1954 2013 59 c v 1956 2021 65 b w 1931 2011 80 a s 1945 2018 73 a t 1958 2017 59 b h 1894 1941 47 c k 1956 1999 43 c f 1926 1983 57 b r 1913 1962 49 国+生年でソートします。A1:E13 国 氏名 生年 没年 存命 a X 1890 1935 45 a y 1945 2018 73 a z 1954 2013 59 a u 1958 2017 59 b v 1894 1941 47 b w 1912 1968 56 b s 1913 1962 49 b t 1931 2011 80 c h 1926 1983 57 c k 1936 1970 34 c f 1956 2021 65 c r 1956 1999 43 ーー C2:D13を範囲指定 挿入ーグラフーグラフの種類ーユーザー定義ーフローティング横棒 でグラフを描かせる。 横軸を捉え 軸の書式設定 目盛 最小値 1800 最大値 2010 目盛間隔 10 補助目盛間隔 10 ーー 元のデータ 項目軸ラベルに使用 A2:B13 OK 棒グラフの左の部分を捉えて データ系列の書式設定 黄色 棒グラフの右の部分を捉えて データ系列の書式設定 赤色 これで生存年中のグラフは赤になった。 ーー ・・・ーーーーーーーーーーーー Az 黄色 | 赤色 | -----------ー AY AX ーーーー 18 18 18 ・・・ 00 10 20 のようなグラフです。縦軸は反転することは出来る。 その場合縦軸の上から AX AY AZ・・ となる ーー さてA国だけのグラフを赤に出来るかとなると 個別にはできるが国aのグラフをを複数個捉えられない。 この点、私の不知で、本当はできるなら、下記VBAなぞ使わなくても良いのだが。 -- それでVBAでやってみた。 Sub Macro1() cnt = Array("a", "b", "c", "d") cl = Array(4, 12, 5, 10) For i = 2 To 12 Worksheets("Sheet1").Activate kuni = ActiveSheet.Cells(i, "A") MsgBox kuni ActiveSheet.ChartObjects("グラフ 5").Activate ActiveChart.SeriesCollection(2).Points(i - 1).Select For j = 0 To UBound(cnt) If cnt(j) = kuni Then With Selection.Interior .ColorIndex = cl(j) .Pattern = xlSolid End With End If Next j Next i End Sub これで国別にグラフが色が指定色になった。 しかし上記のVBAコードはVBAとしての知る必要のある知識を含んでいて、質問者の場合に合わせて、質問者がコードを修正できるか心配。 やる気があれば色々いじくってみてください。 VBAの中級ぐらいの学習者がやれば出来そうだというテストは上記でしたといえよう。
お礼
とても丁寧な説明をありがとうございます。 今回のものに関しては、「F4」キーで対処できそうなので、そちらでやっていきます。 VBAに関しては、ちょうどよい教材をいただきましたので、勉強したいと思います。
お礼
ああ、わかりました! 最初にグラフをクリックしたときは、複数の棒の全てが選択状態になってしまうのですね。 それに気づかず色変更をしていたから、全ていっぺんに変わってしまっていた。 もう一度クリックすることで、単一の棒のみ選択できるわけですね。 おかげさまで、作りたいものにかなり近づけることが出来そうです。 特に、「F4」の操作は知らなかったので、とても助かりました。 本当にありがとうございました!