このページでは、以下の画像のように指定したデータから散布図を自動作成する方法をご紹介していきます。
グラフを作成するだけでなく、周辺のタイトルや軸の設定なども一括で実行できるようになっています。
一度作っておくと非常に便利なので、ぜひご活用ください。
※エクセル上のプログラミングであるVBAを使用して実行していきます。
VBAを使ったことがない、という方はまずは以下の記事を参考に使い方をマスターしておきましょう。
それでは早速やっていきましょう。
使用するサンプルデータの紹介
今回は以下のようにA2~A12セルまでをX軸に、B2~B12セルまでをY軸に、指定して散布図を作成していきます。
このA2~A12、B2~B12セルというのは後程紹介するサンプルコードで使用します。
あなたが散布図を作成したいデータがどこにあるのか良く確認しておきましょう。
散布図を自動作成するVBAコード
それでは本題である散布図の自動作成方法をご紹介します。
以下がそのサンプルコードです。
Sub scatter_grf()
'変数の型を宣言
Dim x_ax As String, y_ax As String
Dim x_title As String, y_title As String
Dim GRF_name As String
'グラフのタイトルを指定する
GRF_name = "grf_title"
'データ範囲を指定する
x_ax = "A2:A12"
y_ax = "B2:B12"
'横軸縦軸の名前を指定する(以下はセル参照の場合)
x_title = Range("A1")
y_title = Range("B1")
'横軸縦軸の文字サイズを指定する
ax_fontsize = 14
'グラフ(散布図)を挿入する
ActiveSheet.Shapes.AddChart2(-1, -4169).Select
With ActiveChart
'指定したデータでグラフ作成
.SeriesCollection.NewSeries
.FullSeriesCollection(1).XValues = ActiveSheet.Name & "!" & x_ax
.FullSeriesCollection(1).Values = ActiveSheet.Name & "!" & y_ax
'グラフの名前、タイトル、軸を変更する
.Parent.Name = GRF_name
.ChartTitle.Text = GRF_name
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Text = x_title
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Text = y_title
.Axes(xlCategory).AxisTitle.Format.TextFrame2.TextRange.Font.Size = ax_fontsize
.Axes(xlValue).AxisTitle.Format.TextFrame2.TextRange.Font.Size = ax_fontsize
End With
End Sub
要所でコメントを付けていますので、各コードが何をやっているのかはだいたいイメージできるはずです。
さきほど紹介したデータ指定は9,10行目で行っていますので、あなたが使いたいデータの領域に書き換えましょう。
軸の名前、軸の文字サイズも同様にあなたの状況に合わせて調整してください。
また、もしグラフの種類を変更したい場合、17行目の“-4169″をという数字を変更すればOKです。
変更先の数字と対応グラフは以下(MicroSoftの公式ページ)をご覧ください。
サンプルコードの実行結果の確認
それでは最後に先ほどのサンプルコードを実行してみましょう。
以下が実行結果です。
問題なくデータ参照、軸、タイトル設定ができていますね。
こちらのスキルを応用すれば複数のグラフも一括で作成できたりします。
以下で解説していますので、興味があればこちらもご覧ください。
グラフ作成自動化マクロのご紹介
今回紹介した内容はあくまでも既存のデータに対して散布図を作成するというものでしたが以下の記事では、①csvファイルの自動読み込み、②散布図の大量作成、➂X軸、Y軸の設定変更、④グラフの表示、非表示の自動切換え等、様々な機能を実装したマクロをご紹介しています。
完成版マクロをダウンロードすることも可能です。
興味があればぜひこちらもご覧ください。
おわりに
というわけで今回は、エクセルVBAをつかって指定データから散布図を自動作成する方法をご紹介しました。
よく行う作業だと思いますので、ぜひ自動化しておきましょう。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント