tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルエクセルのグラフ
記事No1576
投稿日: 2005/04/12(Tue) 10:15
投稿者うっず
[OSのVer]:WindowsXP    [VBのVer]:VB.NET 
エクセルファイルを開き、そのファイルに折れ線グラフを挿入して、
そのグラフで、DisplayUnitCustomプロパティーを設定すると、
そのエクセルファイルを正常に保存できなくなってしまいます。
表示上は所望のグラフを作成できているのですが、保存ができません。
該当部分のソースの抜粋を載せます。
DisplayUnitCustomの設定をコメントアウトすると、正常に保存できます。
同様の現象出ている方いらっしゃいますでしょうか?

'グラフ挿入
xlchart = xlSheetd.ChartObjects.Add((i * (G_F_Width + 10)) + 10, (graphcount * 200) + 10,
G_F_Width, G_F_Height)
'グラフ設定
xlchart.Chart.ChartType = Excel.XlChartType.xlLine
xlchart.Chart.SetSourceData(xlsheetsc.Range(row(i) + "4:" + row(i) + FFTWaveTerm)
)
xlchart.Chart.SeriesCollection(1).Name = "=""" + xlsheetsc.Range(row(i)
+ "2").Value + """"
xlchart.Chart.SeriesCollection(1).Border.Weight = Excel.XlBorderWeight.xlThick
With xlchart.Chart
    .HasTitle = True
    .SeriesCollection(1).XValues = xvalue
    .TickLabelPosition = Excel.XlTickLabelPosition.xlTickLabelPositionLow
    'タイトル
    With .ChartTitle
        .Characters.Text = TitleString1 + TitleString2 + TitleString3
    End With
    '横軸の設定
    With .Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary)
        .HasTitle = True
        .AxisTitle.Characters.Text = "Hz"
        .TicklabelPosition = Excel.XlTickLabelPosition.xlTickLabelPositionLow
        .CategoryType = Excel.XlCategoryType.xlCategoryScale
        .CrossesAt = 1
        .TickLabelSpacing = 5
        .TickMarkSpacing = 5
        .AxisBetweenCategories = True
        .ReversePlotOrder = False
        .HasMajorGridlines = True
        .HasMinorGridlines = False
    End With
    '縦軸の設定
    With .Axes(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary)
        .HasTitle = True
        .AxisTitle.Characters.Text = "m/s2"
        .AxisTitle.Characters(Start:=4, Length:=1).Font.Superscript = True
        .MinimumScale = G_F_MinScale
        .MaximumScale = G_F_MaxScale
        .MinorUnit = 0.5
        .MajorUnit = G_F_Unit
        .CrossesAt = 0
        .ReversePlotOrder = False
        .ScaleType = Excel.XlScaleType.xlScaleLinear
        .DisplayUnitCustom = "0.10204081632653061224489795918367"
        .HasDisplayUnitLabel = False
    End With
    .PlotArea.Interior.ColorIndex = Excel.XlColorIndex.xlColorIndexNone
End With
xlchart.Chart.HasLegend = True
xlchart.Chart.Legend.Position = Excel.XlLegendPosition.xlLegendPositionBottom
xlchart.Chart.Location(Excel.XlChartLocation.xlLocationAsObject, xlSheetd)
NAR(xlchart)
 

[ツリー表示へ]
タイトルRe: エクセルのグラフ
記事No1577
投稿日: 2005/04/12(Tue) 12:28
投稿者花ちゃん
> DisplayUnitCustomの設定をコメントアウトすると、正常に保存できます。

>.DisplayUnitCustom = "0.10204081632653061224489795918367"

ヘルプによりますと、 DisplayUnitCustom プロパティで表示単位の値を設定します。
使用できる範囲は、0 〜 10E307 の値です。値の取得および設定が可能です。
倍精度浮動小数点数型 (Double) の値を使用します。 となっています。

それ以外にもCOMオブジェクトの解放を行っていない部分等があるようです、ここの
Excel & Wowd 他を一度ご覧下さい。
 hhttp://www.bcap.co.jp/hanafusa/dotnet/Excelflm.htm

[ツリー表示へ]
タイトルRe^2: まだ奮闘しているなら
記事No1578
投稿日: 2005/04/12(Tue) 22:05
投稿者花ちゃん
[OSのVer]:Windows    [VBのVer]:VB.NET  
> >.DisplayUnitCustom = "0.10204081632653061224489795918367"

  .DisplayUnitCustom = CDbl("0.10204081632653061224489795918367")

[ツリー表示へ]
タイトルRe^3: まだ奮闘しているなら
記事No1580
投稿日: 2005/04/13(Wed) 15:14
投稿者うっず
[OSのVer]:Windows    [VBのVer]:VB.NET  

>   .DisplayUnitCustom = CDbl("0.10204081632653061224489795918367")

返信ありがとうございます。
桁数を落としたりもしてみましたが、どうもダメでした。
実は現状のプログラムではxlSheetなどをすべてobjectで定義しています。
そこら辺も影響あるのかもしれないので、時間があるときにExcel.Sheetなどに変えてみます。
とりあえず現状は時間が無いので、縦軸の目盛ラベルは表示せずに、縦軸のタイトルに範囲を書くこと

逃げることにしました。
時間ができたときにまた報告に来ます。

[ツリー表示へ]