【VBA】グラフデータ更新⇒画像出力を繰り返してパラパラ漫画を作成!

f:id:yshgs_elec:20210128212952j:plain

この記事では、

【グラフの参照データを更新⇒グラフを画像として出力】

という一連の流れを繰り返し行うVBAコードをご紹介しています。

時系列で変化するデータに対して、この処理を行いパラパラ漫画のようにすることで、時間の経過によってデータがどのように変化していっているのかがわかりやすくなるはずです。

この記事では、時系列データを変化させることが目的ではなく、あくまでも【グラフの参照データを更新⇒グラフを画像として出力】という流れを繰り返し行うことが目的としています。

 

そのため、今回は簡素化して以下のようにグラフ上のサインカーブがニョロニョロ動いていくようなパラパラ漫画を作成してみようと思います。

SIN波のグラフをパラパラ漫画にした結果

※この記事で紹介する内容は、パラパラ漫画の基画像を作成するところまでです。

 

そこからアニメーション化するには別の処理が必要です。

アニメーション化の方法に関しては記事の最後にやり方をご紹介しています。

あなたのやりたいことと一致していれば、ぜひ続きをご覧ください。

それでは早速やっていきます!

 

スポンサーリンク

サインカーブのグラフを作成

まずはグラフがなければ始まりませんので、まずはグラフを作成します。

今回は以下のようにA列に角度、B列にSIN、C列にSINカーブの位相をとってグラフを作成しました。

パラパラ漫画化するサンプルグラフの作成

 

このグラフはC2セルの位相の部分を変更することで、以下の画像のようにサインカーブがすこし動くように作られています。

パラパラ漫画化するサンプルグラフの作成

 

つまり、

C2セルの値を更新⇒グラフを画像として出力

という作業を繰り返し行うことで、冒頭にご紹介したような動画のもとになる画像達を作成することができるというわけです。

 

スポンサーリンク

グラフの名前を確認しておく

エクセル上のグラフにはそれぞれ名前が付けられています。

その名前は以下の画像の赤枠部分で確認することが出来ます。

※今回はgraph1という名前を付けていますが、ここはあなたの好きなように変更してもOKです。

パラパラ漫画化するグラフに名前をつけておく

※私と違う名前のグラフにした場合は、以降で紹介するコード中の”graph1″という部分を変更した名前に適宜変更してください。

スポンサーリンク

画像の出力場所を指定する

次は画像を出力する場所を指定しておきましょう。

今回は以下の画像のようにF1セルに画像の出力場所を記入しました。

※以降で紹介するVBAコードでもこのセルを参照するように記述しています。

パラパラ漫画の出力フォルダを指定する

スポンサーリンク

グラフデータ更新⇒画像出力を繰り返すVBAコード

下準備はこのくらいにして、いよいよVBAコードを記述していきます。

◆データ更新⇒画像出力を繰り返すVBAコード

Sub make_pic_from_graph()
    '変数の型を宣言
    Dim output_folder As String
    Dim pic_name As String
    '画像を出力する場所
    output_folder = Cells(1, 6)
    '出力する画像の名前、拡張子
    pic_name = "output"
    kakuchoshi = ".jpg"
    'データ更新⇒画像出力を繰り返す
    For i = 0 To 360 Step 30
        Cells(2, 3) = i
        ActiveSheet.ChartObjects("graph1").Chart.Export _
        output_folder & "\" & pic_name & Format(i, "000") & kakuchoshi
    Next
End Sub

このコード中のChart.Exportという部分がグラフを画像として出力している部分です。

その直前にC2セルを変更することでグラフを書き換えています。

 

これらを繰り返すことで、グラフをパラパラ漫画のように出力できるわけです。

 

念のためのこのコードを実行してみましょう。

画像の出力先に指定したフォルダの中身はこのようになっていました。

マクロ実行後の出力フォルダの中身確認

しっかりとグラフの曲線が少しづつ変化しながら画像が並んでいますね。

 

あとはこの画像達をエクセルに並べたり、gif動画にしたりすればパラパラ漫画の完成です。

グラフのパラパラ漫画を作成した例

 

やり方がわからないという方は以下の記事を参考にしてみてください。

【VBA】指定したフォルダ内の画像をエクセルに大量貼り付け!

【python】複数画像からパラパラ漫画(gifアニメ)を作成する方法!

 

「こんなの面倒だ!」という方は、

【gifアニメ 作成 ソフト】なんかで検索⇒専用ソフトをダウンロード⇒動画化しましょう。

正直これが一番楽です。

スポンサーリンク

終わりに

というわけで今回はグラフデータ更新⇒画像出力を繰り返してパラパラ漫画の基画像を作成する方法をご紹介しました。

「時系列での変化を説明するにはアニメーションがあったほうがわかりやすいな。」

こんな場面で活躍するはずですので、ぜひやり方をマスターしておきましょう。

 

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

・日々の残業時間を減らしたい。

・業務をもっと効率的にこなしたい。

・もっと勉強する時間を作りたい。

こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。

この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

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