2

私の問題を正確に説明するように努めますが、ご不明な点がありましたらお問い合わせください。

したがって、基本的には、列 A に日付 (1 行目から 80 行目まで) があり、列 B に値 (株価、および同じ範囲) があります。このコードでチャートを作成しました:

Sub Chart()
   Range(Cells(1, 1), Cells(80, 1))Select
   Range(Selection, Selection.Offset(0, 1)).Select
   Set rSource=selection
   ActiveChart.SetSourceData Source:=rSource, PlotBy:=xlColumns
   ActiveChart.Location Where:=xlLocationAsNewSheet
end sub

したがって、これはチャート オブジェクトではなく、新しいシートの新しいチャートです (この件について私が読んだすべてのことは、シート内のチャートだけではなく、チャート オブジェクトを扱っているためです)。ここで必要なのは、2 つの日付の間に水平線 (サポート ライン) を引くことです。たとえば、2013 年 1 月 1 日 (1 行目) と 2013 年 6 月 25 日 (80 行目) の間に線を引く必要があります。この線は、2013 年 1 月 1 日の株価のレベルで、y 軸 (これを水平線と呼んでいます:)) で同じレベルに留まる必要があります。

私はそれを試しました:

Sub supportline()
Dim CoordA As Variant
CoordA = [a1:b80]
ActiveChart.Shapes.AddLine(CoordA(1, 1), CoordA(1, 2), CoordA(80, 1), CoordA(80, 2)).Select
end sub

でも思い通りに線が引けない。スケールの問題があると思いますが、正確な座標を取得する方法がわかりません。

お時間を割いていただき、ありがとうございました。

編集 (2013 年 6 月 11 日) 問題を説明するためにデータベースを単純化しました: http://cjoint.com/?CFksHluf0VD 2 つの日付 (01/01/2013 と 16 /01/2013)

このファイルをダウンロードすると、VBA 部分に次のように表示されます。間違った縮尺と間違った場所で 2/ テスト 2: 2 点間に水平線を引こうとしましたが、まったくうまくいきません

テスト 2 は、元のプロジェクトで行う必要があることです (ある日付から同じ y 値を持つ別の日付に移動する水平線)

4

1 に答える 1

3
ActiveChart.SeriesCollection(1).Select

With Selection.Format.Line

.Visible = msoTrue
//add line style etc

End with

次に、select ステートメントを使用して、結合するポイントを選択します。

このリンクを見ると、最も役立つと思います

折れ線グラフの線の VBA 制御の条件付き書式設定

http://peltiertech.com/WordPress/conditional-formatting-of-lines-in-an-excel-line-chart-using-vba/

スタック オーバーフローに関する別の質問

Excel VBA - グラフ シリーズの線のスタイルをどのように設定しますか?

コメントへの回答として、この質問への回答をご覧ください。チャートの使用に関する適切な説明を提供します(この場合はvb.net)

グラフ: X 軸に値の説明をさらに表示する

そしてMSDNへのリンクはこれです

http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.chart.aspx

于 2013-06-10T14:15:57.303 に答える