ExcelVBAの勉強!海中部材の波力計算結果のグラフ化も超簡単!

プログラミングの勉強

ExcelVBAの勉強!海中部材に作用する波力とモーメントを算定で計算した結果を、VBAでワークシート上に地震波時刻歴図を作成する!で示したプロシージャを使って、散布図を描きます。これまで示したプロシージャに手を加えるだけで簡単に散布図を作成します。

位相角に対する水面変動量、波力、モーメントの図化

ワークシートの準備とデータの書き込み

 ExcelVBAの勉強!海中部材に作用する波力とモーメントを算定のプロシージャ内で図化用ワークシート(”波力位相角”)を準備し、水面変動量、波力、モーメントをそのワークシート上に書き込みます。それぞれ下図の赤枠で囲った部分です。

  ワークシートの定義では、次のコマンドを用いています。

  • Worksheets(“ワークシート名”).Activate:ワークシートをアクティブにする
  • ActiveSheet.ChartObjects.Delete:アクティブシート内のグラフを削除
  • Sheets(“ワークシート名”).Cells.Clear:シート内のデータをクリア

水面変動、波力、モーメント散布図の作成

 続いて、VBAでワークシート上に地震波時刻歴図を作成する!で作成した散布図作成用のプロシージャを用いて、グラフタイトル(Gtitle)y軸タイトル(Ytitle)データ列No.(iclm)グラフNo.(Ccno)配置高さ位置(itop)を変数として定義しなおしました。

 図化の後、アクティブシートを”データ”に戻しています。

図化用プロシージャは、VBAでワークシート上に地震波時刻歴図を作成する!で作成したものを使いまわしています。部品が出来てしまえば、それらを組み合わせるだけです。

 図化データの範囲はRangeによる設定も可能ですが、X軸とY軸が逆転する場合が面倒ですので、ここではX軸、Y軸をそれぞれ別に定義しました。

図化とデータの列順が合っている場合

  .SetSourceData Range(“X軸のデータ範囲,X軸のデータ範囲”)

 ※たとえば、.SetSourceData Range(“A2:A362,C2:C362”)、A列とC列を逆にしてもX軸にはA列、Y軸にはC列が充てられる。

X軸、Y軸のデータをそれぞれ指定する場合

  With .SeriesCollection.NewSeries
    .Values = Range(Cells(開始行No.,列No.), Cells(最終行No.,列No.))
    .XValues = Range(Cells(開始行No., 列No.), Cells(最終行No.,列No.))
  End With

 以上より、コマンドボタン”計算を実行する”をクリックすると下図が出力されます。

速度、加速度、波力分布図の作成

 波力最大時モーメント最大時の位相角に対して、波力、速度、加速度分布の図を作成していきます。

 同様にワークシートを定義して、散布図を描くプロシージャを利用します。

ここでも同じ散布図を描くプロシージャを使いまわします。

変数と縦軸、X軸タイトル等を変えるだけで利用可能です。

 描く波力については、プロシージャ”波力計算”を少し変えて、各高さ毎の波力、速度、加速度をワークシートに書き出します。

 以上より、コマンドボタン”計算を実行する”をクリックすると下図が出力されます。

まとめ

ExcelVBAの勉強!海中部材に作用する波力とモーメントを算定で計算した結果を、これまで示したプロシージャに少し手を加えるだけで散布図を作成してみました。

作図についてはひな形を作っておけば、いろんな場面で使用可能です。

今回は、データの読み込み列を変えたことと、ワークシートの定義だけが新しく追加された事項です。

コメント

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