ほぼ連続の質問で申し訳ございません。
また、昨日の質問でこの掲示板の仕組みをよく理解しておらず、
解決したらすぐに閉じてしまい申し訳ございませんでした。
まだ、自分でも考えていますが、本当に初心者なので多分わからないと思うので質問させてください。
Sub Macro4()
'
' Macro4 Macro
' 炭化水素
'
'
Sheets("結果記録").Select
Sheets("炭化水素").Select
ActiveWindow.SelectedSheets.Delete '古い結果のグラフの削除
Charts.Add after:=Worksheets("結果記録") '新しい結果のグラフの挿入
ActiveChart.Name = "炭化水素"
ActiveChart.SetSourceData Source:=Range( _
"結果記録!$B$3:$B$9,結果記録!$F$3:$H$9,結果記録!$L$3:$L$9")
'?ここのデータは、2〜16個のユーザー選択性を与えたい(結果まとめシートから固定)
ActiveChart.PlotBy = xlColumns
ActiveChart.FullSeriesCollection(1).IsFiltered = False
'?このデータ(1)は下のデータテーブルに出てきてほしいだけでグラフにはいらない(実験番号のため)
'この書き方だと消せませんでした
ActiveChart.FullSeriesCollection(2).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(2).AxisGroup = 1
ActiveChart.FullSeriesCollection(3).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(3).AxisGroup = 1
ActiveChart.FullSeriesCollection(4).ChartType = xlColumnStacked
ActiveChart.FullSeriesCollection(4).AxisGroup = 1
ActiveChart.FullSeriesCollection(5).ChartType = xlLine
ActiveChart.FullSeriesCollection(5).AxisGroup = 2
'(1)実験番号(グラフにはいらない)(2)(3)(4)各物質量%(積み上げ縦棒)
'(5)総量g(ここのみ第2軸で折れ線にしたい)
ActiveChart.SetElement (msoElementChartTitleCenteredOverlay)'グラフタイトルの表示
ActiveChart.ChartTitle.Text = "炭化水素 ファラデー効率(%)"
ActiveChart.SetElement (msoElementDataTableWithLegendKeys)'凡例マーカー付きデータテーブルの表示
ActiveChart.ChartArea.Select
ActiveChart.SetElement (msoElementLegendTop) '凡例の設定
ActiveChart.Legend.Select '凡例の位置
Selection.Left = 400
Selection.Top = 30
ActiveChart.FullSeriesCollection(2).Select
ActiveChart.ChartColor = 15 'グラフの色の変更
ActiveChart.ChartArea.Select
End Sub
こんな感じで、昨日ご指導していただいたVBAで作られた結果を、結果をまとめたシートのデータを参照して
グラフを作るマクロを組んでいます。
今回は、本当にわからなかったので最初は「マクロの記録」で記録してみたものから
組んでいます。(なのでまだ、For Nextやaryで文章の簡素化をできていません)
現在、自分でもよくわかっていない点は2点です。
@複雑なグラフの設定方法
ActiveChart.FullSeriesCollection(1).IsFiltered = False
'?このデータ(1)は下のデータテーブルに出てきてほしいだけでグラフにはいらない(実験番号のため)
'この書き方だと消せませんでした
ActiveChart.FullSeriesCollection(2).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(2).AxisGroup = 1
ActiveChart.FullSeriesCollection(3).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(3).AxisGroup = 1
ActiveChart.FullSeriesCollection(4).ChartType = xlColumnStacked
ActiveChart.FullSeriesCollection(4).AxisGroup = 1
ActiveChart.FullSeriesCollection(5).ChartType = xlLine
ActiveChart.FullSeriesCollection(5).AxisGroup = 2
'(1)実験番号(グラフにはいらない)(2)(3)(4)各物質量%(積み上げ縦棒)
'(5)総量g(ここのみ第2軸で折れ線にしたい)
ここで、2軸型のグラフにするように設定しました。しかし、
ActiveChart.FullSeriesCollection(1)は実験データのサンプル番号なので下のデータテーブルには
表示してほしいけど、グラフには表示してほしくないデータです。
そのように設定する場合は何を使えばいいですか?
Aユーザー選択性のグラフ範囲の指定
ActiveChart.SetSourceData Source:=Range( _
"結果記録!$B$3:$B$9,結果記録!$F$3:$H$9,結果記録!$L$3:$L$9")
'?ここのデータは、2〜16個のユーザー選択性を与えたい(結果まとめシートから固定)
ここの領域をユーザーが選択できるようにしたいです。
この部分に関してはまだよく考えていないので、Input関数でいけないかなあと今から試してみます。
良ければ、教えていただけませんか?