【VBA入門】グラフを自動で作成してみよう(Excel2019)

2019 9/03
【VBA入門】グラフを自動で作成してみよう(Excel2019)

VBAについての記事も4つ目となりました。

前回、CSVファイルを自動で読み込む機能を紹介しましたが、今回は読み込んだCSVデータを使ってグラフを作成してみます。

せっかくデータが読み込めても、そのデータを使用できないと意味ないですからね。

あわせて読みたい
【VBA入門】ファイル読み込み方法はこの2つを知っていれば十分
【VBA入門】ファイル読み込み方法はこの2つを知っていれば十分VBAでファイルを読み込む方法を2種類紹介します。1つはExcelブックとして読み込む方法、2つ目はテキストファイルとして1行ずつ読み込む方法です。この2つの方法を知っていれば大抵のツール作成は大丈夫です。

作成するのは、理系がよく使う散布図です。

今回使用したCSVファイルは、気象庁の以下のページから千葉県千葉市の気温データをCSV形式でダウンロードしたものを、記事用に編集したファイルです。(↓の画像)
https://www.data.jma.go.jp/gmd/risk/obsdl/

CSVファイルに書かれたデータは、年月日、最高気温、最低気温の3つのデータが複数個あります。

千葉市気温データCSVファイル
CSVファイル
目次

ソースコード

このソースコードは、前回のCSVデータをコピーした後から実行される前提で作っています。今回はグラフについての部分のみ抜粋しています。
CSVデータ読み込み部分についてはこちらをご覧ください。

やっていることは、

  • データの要素数(最終行)を取得
  • グラフを追加
  • グラフの種類を設定
  • グラフのデータを設定

です。

スポンサーリンク

ソースコードの説明

では、ソースのそれぞれの詳細を見ていきましょう。

最終行の取得

データの個数が分からないので、まずは最終行を取得します。

上記のコードは、csvSheet(CSVデータがあるシート)の1列目の最終行を取得しています。

シート.Cells(Rows.Count, 列番号).End(xlUp).Row

これで指定した列の最終行が取得できます。

グラフの追加

そのまんま、これだけです。

このコードでは、グラフは新規シートに作成されます。
違うシートに移動したい場合は、

でSheet1に移動させます。

グラフの種類の設定

今回はマーカーなしで直線だけの散布図にしたいので、タイプを「xlXYScatterLinesNoMarkers」にしました。

散布図の他のタイプだと

xlXYScatterマーカーのみ
xlXYScatter Lines直線とマーカー
xlXYScatter Smooth平滑線とマーカー
xlXYScatter SmoothNoMarkers平滑線(マーカーなし)

があります。
作成したいグラフに応じて選択します。

グラフのデータ設定

グラフに表示するデータの設定は「SetSourceData」を使います。

ここでは、csvSheetのセル(1行目,1列目)からセル(最終行,3列目)の範囲のデータをRangeで指定しています。

ちなみに、データがあるシート(csvSheet)とグラフのシートが別なので、「csvSheet.Cells(~)」と、しっかりシートから指定してあげないと、上手く動作しません。

Withでソースを簡潔に書く

ここまでご覧いただいたら気づいたかもしれません。

ソースコードと、説明がちょっと違うことを。

ソースコードでは、

としていましたが、説明では

としていました。

ソースコードでは、同じオブジェクトに対して処理を続けて書く場合に使う「With」ステートメントを使って、長いオブジェクト名を何度も書くことを省略しています。

今回でいうと、「ActiveChart」というオブジェクトに対して処理を複数行うため、

With ActiveChart
.ChartType ~~~~
.SetSourceData ~~~~
End With

としました。
「With」で囲まれている間は、そのオブジェクト名を省略でき、「.」で始めればそのオブジェクトについての処理なんだと識別されます。

便利ですので、ぜひ使ってみてください。


さて、上記のソースコードで実行してみると

自動作成されたグラフ

はい、グラフが作成されました!

でも、軸が見辛いですね。
グラフタイトルも付けたり、線の色を変えたりしたい。

グラフのカスタマイズの方法はこちらの記事をご覧ください。

あわせて読みたい
【VBA入門】グラフのカスタマイズをして見やすくする
【VBA入門】グラフのカスタマイズをして見やすくするVBAでグラフを自動生成した場合のグラフのカスタマイズを紹介します。グラフタイトル、軸タイトルの設定、線の色の設定、軸の交点の設定方法を説明しています。

んじゃ、また~

関連記事

応援よろしくお願いします☆

コメント

コメントする

目次