EXCELでのグラフ処理について


いちすけ  2006-05-09 04:38:43  No: 131278

'*****************
    ' EXCELの起動処理
    '*****************

    'データラベル表示
    .ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowValue)

    Dim xlSC As Excel.Series
    xlSC = .SeriesCollection(4)
    
    ’4項目を棒グラフにする
    xlSC.ChartType = Excel.XlChartType.xlLineMarkers

    With xlSC
       .Border.ColorIndex = 5
       .Border.Weight = Excel.XlBorderWeight.xlMedium
       .Border.LineStyle = Excel.XlLineStyle.xlContinuous
       .MarkerStyle = Excel.XlMarkerStyle.xlMarkerStyleDiamond
       .MarkerBackgroundColorIndex = 5
       .MarkerForegroundColorIndex = 5
       .Smooth = False
       .MarkerSize = 5
       .Shadow = False
    End With

            ' データラベルのフォーマットを変更する
            '-------------------------
             xlSC.DataLabels.font.colorindex = 5  
             xlSC.DataLabels.font.Name = "Arial"
             MRComObject(xlSC)  ’ 開放
            '-------------------------これだと開放される

    ' ↑この部分を{全てのデータラベルを対象にループ処理}をすると
    '   EXCELが開放されなくなってしまいます。
    '   for x as Integer = 0 to 4
    '       xlSC = .SeriesCollection(x)
    '       xlSC.DataLabels.font.colorindex = 5  
    '       xlSC.DataLabels.font.Name = "Arial"
    '       MRComObject(xlSC)  
    '       処理はされるがEXCELが開放されない・・・
    '    next

    '*****************
    ' EXCELの終了処理
    '*****************

DataLabel変数を作成して、代入してみたりも
しましたが、EXCELが開放されてくれません。
xlSCを一度開放して、また違うSeriesCollectionを定義する
部分でエラーになっているのか、そもそもコード自体が違うのか
ご教授いただけませんでしょうか?
よろしくお願いします。


特攻隊長まるるう  2006-05-09 06:08:33  No: 131279

魔界の仮面弁士さん曰く、
># この場合は、「開放」→「解放」かな。
>基本的には、「.」が 2 つ連続で使用されたら NG という事です。
http://www.bcap.co.jp/hanafusa/bbs/wforum.cgi?no=3611&reno=3610&oya=3610&mode=msgview&page=0


特攻隊長まるるう  2006-05-09 06:12:32  No: 131280

↑リンクのサイトのTop
[VBレスキュ−(花ちゃん)]
http://www.bcap.co.jp/hanafusa/
[Excel関係].NET版
http://www.bcap.co.jp/hanafusa/dotnet/Excelflm.htm
もどうぞ。


いちすけ  2006-05-09 17:59:52  No: 131281

>基本的には、「.」が 2 つ連続で使用されたら NG という事です。

お返事ありがとうございます。
ご教授いただいたサイトを確認して、下記のようにしましたが
まだ開放がなされません。

      For x As Integer = 1 To 4

          xlSC = .SeriesCollection(x)

          Dim dlbl As Excel.DataLabels
          dlbl = xlSC.DataLabels

          Dim hoge As Excel.Font
          hoge = dlbl.Font

          hoge.Name = "Arial"

          MRComObject(hoge)
          MRComObject(dlbl)
          MRComObject(xlSC)

      Next

変数の型が違うのでしょうか?
VBAのヘルプがないのでどう調べてよいやら・・・(^^;

ちなみに、
「.」が 2 つ連続で使用されたら NG のはずですが
これ(↓)ですとEXCELが正常に開放されます。
xlSC.DataLabels.font.colorindex = 5  
xlSC.DataLabels.font.Name = "Arial"
MRComObject(xlSC)  ’ 開放


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




  


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