「よくわかる Microsoft Excel2010基礎」(FOM出版)の第7章「グラフの作成」の最後の練習問題に「100%積み上げ横棒グラフ」がある。手順どおり行えば出来る問題であるが、旧バージョン(Excel2003以前)を知っている者にとっては、ここで終わる訳にはいかない...
そこで、類似のデータを作成し、「凡例を横棒グラフの中に表示する」に挑戦した。
■ グラフデータ
商品分類 | 輸入 | 輸出 |
---|---|---|
機械類,輸送用機器 | 105 | 315 |
鉱物性燃料 | 81 | 0 |
雑製品 | 58 | 41 |
食料品及び動物(食用) | 39 | 0 |
工業製品 | 34 | 49 |
化学製品 | 29 | 37 |
非食品原材料 | 23 | 4 |
特殊取扱品 | 6 | 20 |
その他 | 5 | 4 |
総額 | 380 | 470 |
■ 100%積み上げ横棒グラフを作成する
上記グラフデータを Excel2010 にコピペし‥‥
- 100%積み上げ横棒グラフを作成する
- [デザイン]タブ/データGr.の[行/列の切り替え]を行い、
- [レイアウト]タブ/軸Gr.の[軸]⇒[主縦軸]⇒[その他の主縦軸オプション]⇒[軸のオプション]の R軸を反転する。
横軸の目盛りが上に移動したッ! - [レイアウト]タブ/ラベルGr.の[グラフタイトル]⇒[グラフの上]をクリックし、
グラフタイトルを入力する。 - [レイアウト]タブ/ラベルGr.の[凡例]⇒[凡例を下に表示]する。
- 横軸の目盛りを下に移す。
[レイアウト]タブ/軸Gr.の[軸]⇒[主横軸]⇒[その他の主横軸オプション]⇒[軸のオプション]の「軸ラベル」を[上端/右端]に変更する。「軸を反転」しているので、「上端」にすると、下になるようだ。 - グラフを新しいシートに移動すると「練習問題」の形になる。(たぶん)
■ 積み上げ横棒グラフをカスタマイズする
- 横棒内の区切りを明確にする。
[デザイン]タブ/グラフのスタイルGr.で、グラフのスタイルを[スタイル10]とした。 - 凡例を上に移動(ドラッグ)。
∵下には目盛りがあるので、ゴチャゴチャ感があり。凡例を見ないとグラフの解析が難しいため。- ついでに、塗りつぶしの色を白にし、影を付けると効果的か。
- 区分線を引く。
[レイアウト]タブ/分析Gr.の[線]⇒[区分線]をクリック。 - 区分線のスタイルを変える。
- 任意の区分線(区分線1)を右クリック ⇒[区分線の書式設定]をクリックする。
区分線を「選択 ⇒[メニュー]キー押下 ⇒[区分線の書式設定]をクリックの方が確実。何故ならば- 選択することで、何処が選択されたかが判る。
- 右クリックでマウスが動くことがない。(以下、同じ)
- [線の色]で、8線(単色)とし、「色」をグレー系にする。
- [線のスタイル]で、「実線/点線」を破線にする。
- 任意の区分線(区分線1)を右クリック ⇒[区分線の書式設定]をクリックする。
- 5%ごとに補助線を引く。
- 「横(値)軸」を右クリック ⇒[軸の書式設定]をクリックする。
- 「補助目盛間隔」を 8固定 とし、値を 0.05(5%)にする。
- [閉じる]
- 再度、「横(値)軸」を右クリック([メニュー]キー押下) ⇒[補助目盛線の書式設定]をクリックし、
- [線の色]を 8自動 にする。
- 凡例をグラフの中に表示する。(ベストな方法か否かは不明)
- [レイアウト]タブ/ラベルGr.の[データラベル]⇒[中央]をクリックする。
→「値」が表示される。 - 任意のデータラベルを右クリック ⇒[データラベルの書式設定]をクリックする。
- [ラベルオプション]の R値のチェックを外し、R系列名 にする。
- [閉じる]
- 以下、これを繰り返す。
- [繰り返し](Ctrl+Y)は使えません。
- 「マクロ」の作り方・使い方は省略しますが、試験的に「マクロ」を作ったところ(コードは後述)、「マクロの実行」を繰り返すことで達成した。
- ラベルの削除
- 削除するラベルをクリックする → 輸入/輸出 対で選択される。
- 再度削除するラベルをクリックする → クリックしたラベルのみの選択になる。
- [Delete]
- [レイアウト]タブ/ラベルGr.の[データラベル]⇒[中央]をクリックする。
■ 完成図
■ おまけ
- グラフを加工する
- 棒グラフ内の任意の位置を右クリックし、
- [データ系列の書式設定]をクリックする。
- [系列のオプション]の
- 「系列の重なり」を 100% 以下にすると、グラフが階段状になる。
- 「要素の間隔」を 100% 以下にすると、結果として棒の高さが大きくなる。
Sub 選択したデータラベルを系列名に変える() Selection.ShowSeriesName = True Selection.ShowValue = False End Sub