こんにちは、ヒガシです。
このページでは、以下の動画のように飛び飛びで選択したデータから散布図グラフを自動作成するVBAプログラムをご紹介していきます。
それではさっそくやっていきましょう!
飛び飛び選択したセルからグラフ作成するサンプルコード
いきなりですが、いかが冒頭にご紹介したような飛び飛びで選択したデータからグラフを作成するサンプルコードです。
Sub make_graph_select_data()
Application.ScreenUpdating = Flase
Dim value_string As String
Dim x_string As String
value_string = "={"
x_string = "={"
'選択したセルのアドレスを取得する
select_address = Selection.Address
'取得したアドレスを分割する
address_array = Split(select_address, ",")
'選択したセルに対して順番に処理
For j = LBound(address_array) To UBound(address_array)
value_string = value_string & Range(address_array(j)).Value & ","
x_string = x_string & j & ","
Next
value_string = Left(value_string, Len(value_string) - 1) & "}"
x_string = Left(x_string, Len(x_string) - 1) & "}"
Cells(Rows.Count - 100, 1).Select
ActiveSheet.Shapes.AddChart2(240, xlXYScatter).Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(1).Name = "=""select_data"""
ActiveChart.FullSeriesCollection(1).XValues = x_string
ActiveChart.FullSeriesCollection(1).Values = value_string
ActiveChart.Parent.Cut
Range("A1").Select
ActiveSheet.Paste
End Sub
マクロ実行時の注意点
基本的には上記のマクロはセルをひとつずつ選択する前提で書いています。
複数のセルを同時選択しているようなシーンではうまく動きませんのでご注意ください。
なお、サンプルを作成するとはいえ、今回はあくまでもY軸の数値を選択したものにしているにすぎず、X軸の値は0,1,2,3・・・という形で与えるようにしています。
上記を留意のうえご使用いただければと思います。
おわりに
というわけで今回は飛び飛びで選択した複数のセルの数値から、散布図グラフを作成する方法をご紹介しました。
業務効率化等にぜひご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
ぜひ他の記事ものぞいてみてください。
コメント