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の勉強!海中部材に作用する波力とモーメントを算定で計算した結果を、これまで示したプロシージャに少し手を加えるだけで散布図を作成してみました。
作図についてはひな形を作っておけば、いろんな場面で使用可能です。
今回は、データの読み込み列を変えたことと、ワークシートの定義だけが新しく追加された事項です。
コメント