• 締切済み

Excelで添付図ようなグラフを作成するVBA

Excelで下の添付図1のグラフをマクロ(VBA)で作成したいのですが どのように記述すればよいでしょうか。 図1のグラフは、以下の操作で作成できますが、 マクロの記録で記録して実行しても、 図1のグラフになりません。 1) A1セルにA、B1セルに75、A2セルにB、B2セルに25と入力して  A1:B2セルを選択する 2)「挿入」タブの「グラフ」グループの  右下にある矢印アイコン(「すべてのグラフを表示」)をクリックする 3)「グラフの挿入」ダイアログが表示されるので  「すべてのグラフ」タブをクリックする 4) 左側の上から6番目にある「横棒」を選択する 5) 右側上部の左から3番目にある「100% 積み上げ横棒」を選択する 6) 右側下部の右側(横棒が1本の方)を選択する 7) 右下の「OK」ボタンでダイアログを閉じる 8) 図1のような100%積み上げ横棒が作成される。 よろしくお願いします。 (Windows7,Excel2016(Office365ProPlus))

みんなの回答

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

例データ A1:B4 A 55 B 20 C 15 D 10 B列は数字ですが、安直に、足して100になる、数字を使ってます。 実際の数字(例えば、4店の各売上高そのものとか)を入れてやってみてください。 標準モジュールに Sub test03() With ActiveSheet.Shapes.AddChart.Chart .ChartType = xlBarStacked100 .SetSourceData Source:=Sheets("Sheet1").Range("A1:B4"), PlotBy:=xlRows 'Columns End With End Sub  PlotBy:=xlRows の辺が要注意かな。 結果画像は省略しますが、あとグラフ書式などは、WEB照会をして、考えてください。

yam2012
質問者

お礼

上記のコードで添付図1と同じようなグラフが作成されました。 また、質問の1~8の操作でマクロ記録したコードでも ,PlotBy:=xlRowsを付け加えて実行すると 添付図1のグラフが作成されました。 どうも、自動生成されたコードには, PlotBy:=xlRowsが抜け落ちる問題があるようです。 回答ありがとうございました。 【追記】 問題は解決しましたが、 教えていただきましたコードをwithを使わずに記述するには どのように記述すればよいのでしょうか。 Sub test03() ActiveSheet.Shapes.AddChart.Chart.ChartType = xlBarStacked100 ActiveSheet.Shapes.AddChart.Chart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B4"), PlotBy:=xlRows 'Columns End Sub となるように思うのですが、どこか間違っていますでしょうか。 これだと全く別のグラフになってしまいます。 よろしくお願いします。

  • Nobu-W
  • ベストアンサー率39% (725/1832)
回答No.1

http://excel.style-mods.net/tips_vba/index.htm 詳しく述べれないですが>< 上記HPの『グラフの操作』を参考にしてやっ てみて下さい

参考URL:
http://excel.style-mods.net/tips_vba/index.htm
yam2012
質問者

お礼

ありがとうございました。