tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルMajorGridラインとラベルの位置をピッタリ揃えるには?
記事No11001
投稿日: 2013/01/02(Wed) 02:48
投稿者OOT
2つ質問します。朝から取り組んでますがまだ終わりません。夜が明けそうです。

質問@
VisualBasic2010で折れ線グラフを書いています。
Y軸のMajorGridラインとラベルの位置がずれてて見栄えが良くありません。
MajorGridラインとラベル(数字)の位置をピッタリ揃えるにはどう書けば
いいんでしょうか?。Excelのチャートはピッタリそろうのですが、
Vb2010でやると必ずといっていいほどずれます。
質問A
折れ線グラフの垂直下方向への、降下線の描き方と降下線の太さを変更するのは
どう書けばいいんでしょうか?。ググってもヒットするのはExcel
ばかりで、VBでのやり方はさっぱりヒットしません。
Excelのマクロの記録を取ってコードを調べましたが、Vb2010では応用が
ききません。↓がExcelで記録したのマクロの内容ですが、
HasDropLinesもDropLinesもVb2010では記述のやりかたがわからず、
うまくいきません。
Sub Macro1()
' Macro1 Macro
' マクロ記録日 : 2013/1/2  ユーザー名 : XXXX
    ActiveSheet.ChartObjects("グラフ 1").Activate
    ActiveChart.SeriesCollection(1).Select
    With ActiveChart.ChartGroups(1)
        .HasDropLines = True
        .HasHiLoLines = False
        .HasUpDownBars = False
        .VaryByCategories = False
    End With
    ActiveChart.ChartGroups(1).DropLines.Select
    With Selection.Border
        .ColorIndex = 57
        .Weight = xlThick
        .LineStyle = xlContinuous
    End With
End Sub
ご教授願えれば幸いです。

[ツリー表示へ]
タイトル自己レス
記事No11002
投稿日: 2013/01/02(Wed) 13:20
投稿者OOT
Y軸のMajorGridラインとラベルの位置がずれるのは
軸の間隔を指定した場合に起こるようです。MajorGrid.Intervalです。
サンプル載せます。
------------------------
    Private Sub Form1_Load(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Dat As New DataTable
        'データ準備
        Dat.Columns.Add("point", GetType(Integer))
        Dat.Columns.Add("depth", GetType(Double))
        Dat.Rows.Add(1, 1.3254)
        Dat.Rows.Add(2, 1.3001)
        Dat.Rows.Add(3, 1.297)
        Dat.Rows.Add(4, 1.321)

        Chart1.Series.Clear()
        'チャート設定
        Dim Test_Chart = Chart1.Series.Add("depth")
        Test_Chart.ChartType = DataVisualization.Charting.SeriesChartType.Line
        Test_Chart.XValueMember = "point"
        Test_Chart.YValueMembers = "depth"
        With Chart1.ChartAreas(0)
            .AxisY.Maximum() = 1.33
            .AxisY.Minimum() = 1.29
            .AxisY.MajorGrid.Interval = 0.005 '☆この行を外すとずれない
        End With
        Chart1.DataSource = Dat
    End Sub
------------------
MajorGrid.Intervalを指定するとラベル位置とグリッドの位置がずれる
のは仕様なのでしょうか?

[ツリー表示へ]
タイトルRe: 自己レス
記事No11003
投稿日: 2013/01/03(Thu) 09:11
投稿者OOT
質問@は解決しました。
ラベルの間隔とグリッド間隔の値を同じにすればいいです。

.AxisY.LabelStyle.Interval = .AxisY.MajorGrid.Interval

[ツリー表示へ]