【エクセルVBA】グラフ参照範囲を変えながらパラパラ漫画を作成する方法

こんにちは、ヒガシです。

 

このページでは、以下のようにグラフのY軸参照範囲を1列ずつ変えながら

こんな感じのパラパラ漫画グラフを作成する方法をご紹介していきます。

 

エクセル上でグラフが動いていきますので、時系列でデータがどのように変化しているのかをイメージすることができると思います。

 

それではさっそくやっていきましょう!

スポンサーリンク

データ範囲の前提条件

今回は冒頭に示した通りデータの参照範囲を変えながら散布図グラフを作成していくわけですが、X軸の値はA列のデータ固定とし、Y軸の値をB列以降の値を設定していきます。

また、1行目はラベル名が入っていることが多いと思いますのでデータの参照範囲は2行目以降に設定しています。

※最終行は自動取得できるようになっています。

 

またデータの列数ですが、今回は20個までのデータに対応できるようにしています。

列数を増やそうと思ったらプログラムの改造が必要ですのでご注意ください。

 

スポンサーリンク

参照範囲を変えながらグラフをパラパラ化するサンプルコード

さっそくですが、以下がそのサンプルコードです。

Sub Make_Moving_Graph()
    update_speed = 0.4
    header_row = 1
    start_row = 2
    end_row = Cells(Rows.Count, 1).End(xlUp).Row
    MsgBox end_row
    chart_width = 600
    chart_height = 400
    num_graph = WorksheetFunction.CountA(Range("B1:U1"))
    Cells(1000, 1).Select
    ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
    ActiveChart.Parent.Name = "Base_Graph"
    With ActiveSheet.ChartObjects("Base_Graph")
            .Width = chart_width
            .Height = chart_height
            .Left = 60
            .Top = 60
    End With
    Cells(1, 1).Select
    'データの数だけ繰り返す
    ActiveSheet.ChartObjects("Base_Graph").Activate
    For i = 1 To num_graph
        'データ範囲を取得する
        X_AXIS = "A" & start_row & ":A" & end_row
        Y_AXIS = Chr(65 + i) & start_row & ":" & Chr(65 + i) & end_row
        'グラフ(散布図)を挿入する
        With ActiveChart
            '1つ目のデータ作成
            .SeriesCollection.NewSeries
            .FullSeriesCollection(1).XValues = ActiveSheet.Name & "!" & X_AXIS
            .FullSeriesCollection(1).Values = ActiveSheet.Name & "!" & Y_AXIS
        End With
        Application.Wait [Now()] + update_speed / 86400
        DoEvents
    Next
End Sub

 

基本的には2行目のupdate_speedの値を変更すればパラパラ漫画の実行スピードを変更することができます。

 

スポンサーリンク

サンプルコードの実行結果確認

最後にサンプルコードを実行してみましょう。

まずはupdate_speed=0.4の結果です。

次はupdate_speed=0.2でやってみます。

あんまり早すぎると処理が追い付かずにカクカクしてますね。笑

 

まぁいい感じに調整してみてください。

 

スポンサーリンク

おわりに

というわけで今回はグラフの参照範囲を変えながらパラパラ漫画のように動かす方法をご紹介しました。

 

データ分析やゲームを作る際などにぜひご活用ください。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

ぜひ他の記事ものぞいてみてください。

コメント

タイトルとURLをコピーしました