VBA Step3

(4).処理2:株価チャートの作成

[株価チャートの作成]には「マクロの記録」を流用します。
ステップ2の[並び替え]のマクロの記録と同様に、今までの説明にない命令(ステートメント)も出てきていますが、変更が必要な箇所のみ分かれば問題ありません。

 

「マクロの記録」作成の準備

マクロの記録は、「C社の株価チャート」で行いますので、次の操作でシート[グラフ(C社)]を削除します。
1).シート名[グラフ(C社)]の右クリックメニューを表示し、[削除]をクリックする。
.シート名[グラフ(C社)]の削除

 

2).[削除]をクリックする。
.シート名[グラフ(C社)]の削除確認
※.必ずシート[グラフ(C社)]を削除してから、次のマクロの記録の操作をしてください。

 

「マクロの記録」作成

1).[開発]タブ・[マクロの記録]をクリックする。
マクロの記録開始

 

2).「マクロ名」の変更は任意とし、[OK]をクリックする。
マクロ名の確認

 

3).シート[グラフデータ(C社)]・セル[A1]からセル[F9]をドラッグ・[挿入]タブ・[おすすめグラフ]をクリックする。(図クリックで拡大表示)

グラフの元データ範囲の選択

4).[すべてのグラフ]・[株価]・[株価チャート(出来高-始値-高値-安値-終値)]・[OK]をクリックする。
作成グラフとして株価チャートの選択

 

5).[グラフの移動]をクリックする。(図クリックで拡大表示)

作成したグラフを新しいシートへ移動

 

6).[新しいシート]の入力欄に[グラフ(C社)]と入力し[OK]をクリックする。
新しいシート名の入力

 

7).グラフタイトルを[C社の株価チャート]に変更する。
グラフタイトルの変更

 

8).[左の軸の出来高の目盛]の右クリックメニューを表示し[軸の書式設定]をクリックする。
左の軸の書式変更の選択

 

9).グラフの右側に次の[書式設定-1]が表示される。(図クリックで拡大表示)

左の軸の目盛変更

出来高とローソク足が重なる部分があるため、次の操作を行う。

  • 書式設定ー2:「最大値」を2倍の[240000.0]に変更するが、「最小値」が[-10000.0]になり、グラフの原点(左下)が「0」にならない。
  • 書式設定ー3:「最小値」を[0.0]に変更し、グラフの原点(左下)を「0」にする。

 

10).横軸の「期間」をクリックし、[軸の種類]の[テキスト軸]をクリックする。(図クリックで拡大表示)

横軸の書式変更

今回作成した株価チャートの集計単位は[週]のため、ここまでの操作で終了ですが、集計単位が[月]の場合の横軸(期間)は、「年月日」ではなく「年月」表示のほうが望ましいと思いますので、次からの操作もこのマクロの記録の中に入れておきます。

 

11).右の[スクロールバー]を下に動かし、[表示形式]をクリックし更に[スクロールバー]を下に動かし、[種類]のドロップダウンリストを表示する。(図クリックで拡大表示)

横軸の表示形式変更の選択

 

12).[2012年3月]を選択(クリック)する。(図クリックで拡大表示)

横軸の表示形式変更

横軸の値の表示が「年月」に変更されます。[週]単位の表示としては意味がないかもしれませんが、この後のVBAプログラムで使用します。

 

13).[軸の書式設定]を[×]で閉じる。(図クリックで拡大表示)

軸の書式変更終了

 

14).[開発]タブ・[記録終了]をクリックする。
マクロの記録終了

 

以上の操作で[マクロの記録]が終了しましたので、次の操作でVBAを確認しましょう。

 

「マクロの記録」確認

1).[マクロ]をクリックする。
マクロの記録の確認

 

2).上記(2)-2)で指定した[マクロ名](この場合は[Macro2])を選択し、[編集]をクリックする。
確認するマクロの選択

 

3).[標準モジュール]・[Module6]([Module5]の場合もあり)に、プロシージャ[Sub Macro2 ~ End Sub]が表示される。(このマクロはモジュール[マクロ_Step3_株価チャート]にも入っています)(図クリックで拡大表示)

確認するマクロのVBA

 

[会社:C社、集計単位:週]を作成条件とした上記VBAの内容は、次の通りで非常に長いVBAになっていますが、全てを理解する必要はありません。
このVBAの[会社]・[集計単位]に関係する命令を「変数」に変更すれば、他の作成条件でも利用可能になりますので、赤字の部分に注目しましょう。

Sub Macro2()
'
' Macro2 Macro
'
 Range("A1:F9").Select
 ActiveSheet.Shapes.AddChart2(322, xlStockVOHLC).Select
 ActiveChart.SetSourceData Source:=Range("'グラフデータ(C社)'!$A$1:$F$9")
 ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="グラフ(C社)"
 ActiveChart.ChartArea.Select
 ActiveChart.ChartTitle.Select
 ActiveChart.ChartTitle.Text = "C社の株価チャート"
 Selection.Format.TextFrame2.TextRange.Characters.Text = "C社の株価チャート"
 With Selection.Format.TextFrame2.TextRange.Characters(1, 9).ParagraphFormat
  .TextDirection = msoTextDirectionLeftToRight
  .Alignment = msoAlignCenter
 End With

With Selection.Format.TextFrame2.TextRange.Characters(1, 1).Font
  .BaselineOffset = 0
  .Bold = msoFalse
  .NameComplexScript = "+mn-cs"
  .NameFarEast = "+mn-ea"
  .Fill.Visible = msoTrue
  .Fill.ForeColor.RGB = RGB(89, 89, 89)
  .Fill.Transparency = 0
  .Fill.Solid
  .Size = 14
  .Italic = msoFalse
  .Kerning = 12
  .Name = "+mn-lt"
  .UnderlineStyle = msoNoUnderline
  .Spacing = 0
  .Strike = msoNoStrike
 End With

With Selection.Format.TextFrame2.TextRange.Characters(2, 8).Font
  .BaselineOffset = 0
  .Bold = msoFalse
  .NameComplexScript = "+mn-cs"
  .NameFarEast = "+mn-ea"
  .Fill.Visible = msoTrue
  .Fill.ForeColor.RGB = RGB(89, 89, 89)
  .Fill.Transparency = 0
  .Fill.Solid
  .Size = 14
  .Italic = msoFalse
  .Kerning = 12
  .Name = "+mn-lt"
  .UnderlineStyle = msoNoUnderline
  .Spacing = 0
  .Strike = msoNoStrike
 End With

 ActiveChart.Axes(xlValue).Select
 ActiveChart.Axes(xlValue).MaximumScale = 240000
 ActiveChart.Axes(xlValue).MinimumScale = 0
 ActiveChart.Axes(xlCategory).Select
 ActiveChart.Axes(xlCategory).CategoryType = xlCategoryScale
 Selection.TickLabels.NumberFormatLocal = "yyyy""年""m""月"";@"
 Application.CommandBars("Format Object").Visible = False
End Sub

上記の白い枠内について、Characters(1, 1)とCharacters(2, 8)以外は同じ内容ですね。この部分を一つにまとめることも考慮して、上記赤字部分を変更することにより、処理2のVBAを完成させます。

 

 
  このエントリーをはてなブックマークに追加

 

スポンサーリンク