- ベストアンサー
グラフの自動化
VBA初心者です。 以下の事をVBAマクロで組みたいのですがアドバイス頂けませんでしょうか? <やりたい事> エクセルでA列に月日時分がありB列以降に200行くらいのデータテーブルがあるのですが、 チェックボックス等でグラフ表示したい行を選択して、その行だけを散布図としてグラフ化したいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 こんなのでしょうか? Private Sub CommandButton1_Click() ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Values = Range("B" & Selection.Row).Resize(Selection.Rows.Count, 1) ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).XValues = Range("A" & Selection.Row).Resize(Selection.Rows.Count, 1) End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
回答者に、コードを書いてくださいと丸投げの質問。 >散布図 2列のデータの対を点として捉えるものと思うが列の選択はどうなるのか。 範囲を指定するのはチェックボックスは不向きと思うが、どう考えているか。初心者だろうが、グラフを描いて、マクロの記録を取りましたか。そこでどこを任意に変えれはよいのか、コード上で考えましたか。 質問する前に、初心者ならそれで、まずやることをやって無いのでは。 初心者では、コントロール(チェックボックスなど)と関連付けるのなど次のステップ。InputBoxででもとりあえず行(列)指定する方式にして、うまく行ってから改良するもんだ。
お礼
ご助言ありがとうございます。 ただ、仕事上で至急対応する必要があって、精通している方にアドバイスもらいたかっただけです。
- hotosys
- ベストアンサー率67% (97/143)
こんなのはどうでしょうか? 既にグラフがあるとして、A列が選択されたらその行をデータ系列の値として設定します。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 Then ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Values = Range("B" & Target.Row).Resize(1, 10)’10は横数なので適当に変更してください End If End Sub
お礼
ありがとうございます。 質問の仕方間違えてました。選択した任意の行でなく列が正しいです。 例えばC/D/E列を選択して、”グラフ作成” というコマンドボタンを押すと X軸が月日時分で、C/d/E列が系列として 散布図のような感じです。 質問の言い方間違えてすみませんでした。
お礼
ありがとうございます。 これを参考にしてtryしようと思います。