VB6よりExcelの操作を行い、グラフ(散布図)を作成したい

解決


えーさん  2009-09-12 00:38:12  No: 142523

VB6
Excel2000

グラフ(散布図)を使用し、近似曲線の対数を追加しています。
各系列の色については自動で色が変更されるようになっていますが、
対数の線については全て自動な場合カラーがすべて黒でした。

系列毎に対数の線を作るようにしているのですが、
色も合せたいと思っています。
系列が固定でない為、自動で系列にセットされた
カラーを対数の線にもセットしたいのですが、
どなたか、ご存知でないでしょうか?

現在のソースは下記の通りです。
*********************************************************************
'グラフシートを作る
xlsBooks(alngSouNo).Charts.Add
With xlsBooks(alngSouNo).ActiveChart
    .ChartType = xlXYScatter
    '初期シートのデーて出力範囲を指定
    .SetSourceData Source:=xlsSheet.Range("A4:E" & avalPasData2(0, 0)), PlotBy:=xlColumns

    '各種系列設定
    For lngIndx = 1 To alngCnt
        'x軸設定
        .SeriesCollection(lngIndx).XValues = "='" & avalPasData2(lngIndx - 1, 1)  _
                                           & "'!R4C4:R" & avalPasData2(lngIndx - 1, 0) & "C4"
        'y軸設定
        .SeriesCollection(lngIndx).Values = "='" & avalPasData2(lngIndx - 1, 1) _
                                           & "'!R4C5:R" & avalPasData2(lngIndx - 1, 0) & "C5"
        '名称軸設定
        .SeriesCollection(lngIndx).Name = "='" & avalPasData2(lngIndx - 1, 1) & "'!R2C2"
    Next lngIndx
    .SeriesCollection(3).Delete

    .Location Where:=xlLocationAsNewSheet
    '★各種グラフのタイトル設定★
    '★タイトル
    .HasTitle = True
    .ChartTitle.Characters.Text = "グラフタイトル"
    '★x軸タイトル
    .Axes(xlCategory, xlPrimary).HasTitle = True
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x軸タイトル名"
    '★y軸タイトル
    .Axes(xlValue, xlPrimary).HasTitle = True
    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y軸タイトル名"

    '近似曲線設定
    For lngIndx = 1 To alngCnt
        .SeriesCollection(lngIndx).Select
        .SeriesCollection(lngIndx).Trendlines.Add Type:=xlLogarithmic, Forward:=0, Backward:=0
    Next lngIndx
End With
*********************************************************************


特攻隊長まるるう  2009-09-12 04:04:57  No: 142524

Excel 上の操作は[マクロの記録]を実行することでコードを書き出せます。
このコードを参考に修正して使用してみてください。

> グラフ(散布図)を使用し、近似曲線の対数を追加しています。
手元には Excel2003 しかありません。動かしてみると微妙に質問文と
内容が違うように思うのですが。。。グラフ(散布図)を使用し、
グラフの種類を対数(軸)にした後、系列を選択して近似曲線を追加
した場合、近似曲線の色が黒になりました。
近似曲線の色を変更したときのマクロを記録すると
    ActiveSheet.ChartObjects("グラフ 1").Activate
    ActiveChart.SeriesCollection(7).Trendlines(1).Select
    With Selection.Border
        .ColorIndex = 46
        .Weight = xlMedium
        .LineStyle = xlContinuous
    End With
といったコードが記録できました。
.SeriesCollection(lngIndx).Trendlines(1).Border.ColorIndex = 46
みたいになるのかな?

> xlsBooks(alngSouNo).Charts.Add
> With xlsBooks(alngSouNo).ActiveChart
マクロの記録では、Active とか Select といった単語がよく出てきますが、
シートがアクティブでないと命令自体が失敗することがあります。逆に
シートをアクティブにしていた場合、プログラム実行中にユーザがちょっと
グラフにさわった事で別のグラフがアクティブ(=処理対象)になります。

Dim xlsChart As Excel.Chart
Set xlsChart = xlsBooks(alngSouNo).Charts.Add
でグラフオブジェクトを直接参照できます。こういった命令に置き換えた
ほうが安定して動きます。


えーさん  2009-09-17 03:07:54  No: 142525

系列の色を自動とした場合、その色を近似曲線の色の設定にセットしたのですが、うまくいきませんでした。

その為、増える毎にループして色の設定を変更することで対応を行ないました。
解決にはなっていませんが・・・。

どなたか御存知でしたらまたアドバイスの程、宜しくお願い致します。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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