Excel2013VBAで地震波データを読み込んで、地震波時刻歴図を作成します。
今回は、図化用データを書き込んだワークシート上に、地震波時刻歴図を作成します。
地震波時刻歴図を作成するプロシージャの作成
VBAで地震波時刻歴のテキストデータを読み込んで図化用データをつくる!で使用した”Module1”に、図化用のプロシージャ(Sub 地震波時刻歴図作成)を記述していきます。
また、地震データ読み込みと地震波時刻歴図作成をサブルーチンとして順番に実行させるメインのプロシージャ(Sub メインプログラム)を作成します。
この際、地震波データの個数Nは、Sub 地震波時刻歴図作成に引き継ぐため、宣言セクションで定義します。
Sub メインプログラムとSub 地震波時刻歴図作成は次のように作成しました。Sub 地震波データ読み込みは変数Nの定義を除いただけで変更ありません。
以下、使用したコマンド等を説明します。
グラフの作成コマンド
つぎのコマンドを用いてグラフを作成します。
With ActiveSheet.Shapes.AddChart.Chart
.ChartType = xlXYScatterLinesNoMarkers → 散布図マーカーなしの線図
.SetSourceData Range(範囲,範囲) → データの範囲
.SetElement (msoElementPrimaryCategoryGridLinesMajor)
→ グラフの縦目盛り線追加
.SeriesCollection(1).Format.Line.Weight = 太さの数字
→ 線の太さを指定
End With
ちなみに、Withステーションでは、指定した項目の色や範囲、書式等を設定します。
With 指定した項目(何々)
指定した項目(何々)の色や範囲や書式などを指定
(※何々を省略して指定するものを記述)
End With
例えば、今回の例の中から”Gurafu.Chart.ChartTitle.Format.TextFrame2.TextRange.Font” のサイズを12に指定していますが、.Sizeより前の指定はWithで指定しているので、.Size=12のみ記述しています。
With Gurafu
~
With .Chart
~
With .ChartTitle.Format.TextFrame2.TextRange.Font
.Size = 12
End With
End With
End With
ワークシート上にグラフを表示
ワークシート上に埋め込みオブジェクトとしてグラフを表示します。
Dim 変数 As Object
Set 変数= ActiveSheet.ChartObjects(1)
または
Set 変数= ActiveSheet.ChartObjects(“グラフ名”)
※(1)はワークシートに埋め込まれるグラフのインデックス番号ですが、グラフ名を指定することもできます。
※ここで有効となっているワークシートは”Sub 地震データ読み込み”でデータを書き込んだワークシートです。
グラフオブジェクトの名前、位置、大きさの指定
グラフオブジェクト
.Name = “名前” ‘グラフの名前
.Top = 数字 ‘上下の位置
.Left = 数字 ‘左の位置
.Width = 数字 ‘幅
.Height = 数字 ‘高さ
グラフタイトルの有無、名前、凡例の有無
グラフオブジェクト.Chart
.HasTitle = True ‘グラフタイトルあり(なしの場合False)
.ChartTitle.Text = “タイトル名” ‘グラフタイトル
.HasLegend = False ‘凡例なし(ありの場合True)
グラフタイトルのフォント
グラフオブジェクト.Chart.ChartTitle.Format.TextFrame2.TextRange.Font
.Size = 12 ‘タイトルの文字サイズ
.Name = “MS Pゴシック” ‘タイトルのフォント
.Bold = False ‘Boldにしない(する場合True)
軸の指定
グラフオブジェクト.Chart.Axes(軸指定)
※横軸 Axes(xlCategory)、縦軸 Axes(xlValue)
.HasTitle = True ‘軸タイトルあり(なしの場合False)
.AxisTitle.Text = “タイトル名” ‘軸タイトル
.TickLabels.NumberFormatLocal = “書式” ‘横軸数値の書式
軸のフォント
グラフオブジェクト.Chart.Axes(軸指定).AxisTitle.Format.TextFrame2 .TextRange.Font
.Size = 12 ‘タイトルの文字サイズ
.Name = “MS Pゴシック” ‘タイトルのフォント
.Bold = False ‘Boldにしない(する場合True)
プロシージャの実行
ここでは、VBAにて「デバック」→「VBAProjectのコンパイル」を実施しておきます。
Excelシート上で、「マクロ」→ メインプログラムを選び →「実行」をクリックして実行します。
「ファイルを開く」ダイアログボックスが開きますので、図化するファイル(ここではVBAで地震波時刻歴のテキストデータを読み込んで図化用データをつくる!で使用した”地震波サンプル.txt”)を選ぶと、新しいワークブックが開き、つぎのように加速度時刻歴図が表示されます。
以上、最低限必要と思われるコマンド等を用いて図化してみました。
参考にしていただければうれしいです。
なお、Pythonで地震波時刻歴図を描いてみた!において、Pythonで同じ地震波時刻歴を作成していますので、興味のある方は是非ご覧ください。
コメント