• ベストアンサー

グラフの自動化

VBA初心者です。 以下の事をVBAマクロで組みたいのですがアドバイス頂けませんでしょうか? <やりたい事> エクセルでA列に月日時分がありB列以降に200行くらいのデータテーブルがあるのですが、 チェックボックス等でグラフ表示したい行を選択して、その行だけを散布図としてグラフ化したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • hotosys
  • ベストアンサー率67% (97/143)
回答No.2

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

mm02847
質問者

お礼

ありがとうございます。 これを参考にしてtryしようと思います。

その他の回答 (2)

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

回答者に、コードを書いてくださいと丸投げの質問。 >散布図 2列のデータの対を点として捉えるものと思うが列の選択はどうなるのか。 範囲を指定するのはチェックボックスは不向きと思うが、どう考えているか。初心者だろうが、グラフを描いて、マクロの記録を取りましたか。そこでどこを任意に変えれはよいのか、コード上で考えましたか。 質問する前に、初心者ならそれで、まずやることをやって無いのでは。 初心者では、コントロール(チェックボックスなど)と関連付けるのなど次のステップ。InputBoxででもとりあえず行(列)指定する方式にして、うまく行ってから改良するもんだ。

mm02847
質問者

お礼

ご助言ありがとうございます。 ただ、仕事上で至急対応する必要があって、精通している方にアドバイスもらいたかっただけです。

  • hotosys
  • ベストアンサー率67% (97/143)
回答No.1

こんなのはどうでしょうか? 既にグラフがあるとして、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

mm02847
質問者

お礼

ありがとうございます。 質問の仕方間違えてました。選択した任意の行でなく列が正しいです。 例えばC/D/E列を選択して、”グラフ作成”  というコマンドボタンを押すと X軸が月日時分で、C/d/E列が系列として 散布図のような感じです。 質問の言い方間違えてすみませんでした。

関連するQ&A

専門家に質問してみよう