この記事では、以下の動画のように既存の3D等高線グラフの視野を回転させながらアニメーションにする方法をご紹介していきます。
基本的には記事中のコードをコピーするだけでOKです。
※そもそもの3D等高線グラフの作り方を知りたい、という方はまずは以下の記事を参考にしてみてください。
【エクセルVBA】自動で3D-等高線グラフを作成する方法!領域指定するだけ!
それではさっそくやっていきましょう。
3D等高線グラフを準備しておく
まずは回転させるグラフがなければ話になりませんので、まずはグラフを作成していきましょう。
今回は以下のようなグラフを準備しています。
基本的には前回の記事で作成したものとまったく同じです。
回転させる前の下準備
次は回転させる前に必要な準備をしておきましょう。
まずは以下の画像を参考に3D-回転(R)を選択します。
すると以下のような調整項目が出てきますので、こちらも以下の画像を参考に設定を行います。
これらを実施すると私の場合は以下のような表示になりました。
以降の項目ではこの形をベースに視野を回転させていくことになります。
グラフ視野を回転させて動画化するVBAコード
それでは本題であるグラフの回転アニメーション化を行っていきましょう。
まずはVBAコードを記述しましょう。
Sub Rotation_grf()
Dim i As Integer, num_rot As Integer, step_deg As Integer
Application.ScreenUpdating = True
ActiveChart.Parent.Name = "3d_surface"
num_rot = 1
step_deg = 10
For j = 1 To num_rot
For i = 0 To 360 - step_deg Step step_deg
ActiveSheet.ChartObjects("3d_surface").Chart.Rotation = i
'画像として出力したい場合は以下のコメントは外す
'ActiveSheet.ChartObjects("3d_surface").Chart.Export ThisWorkbook.Path & "\deg" & Format(i, "000") & ".jpg"
DoEvents
Next
Next
End Sub
たったのこれだけです。
変数の説明は以下ですので、状況に応じて調整してください。
num_rot:VBA実行中に何回転させるか
step_deg:1コマあたりの回転角度
なお、各回転角度の画像を出力したい場合はDoEventsの前のコードをアクティブにすれば実行フォルダに画像が出力されます。
こちらも必要に応じてご利用ください。
サンプルコードの実行方法
先ほどのコードは何も考えずに実行すると動きません。
実行方法は以下の通りです。
まずはグラフを選択した状態にします。(以下画像参照)
この状態を維持したまま、開発タブ⇒マクロ⇒Rotation_grfを選択⇒実行でマクロ実行を行います。
すると以下のようにグラフが回転し始めるはずです。
というわけで無事やりたいことを実行できましたね。
おわりに
というわけで既存の3D等高線グラフを回転させてアニメーション化する方法をご紹介しました。
データ分析の際などにぜひご活用ください。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント