[リストへもどる]
一括表示

投稿時間:2004/04/28(Wed) 15:52
投稿者名:よこ
URL :
タイトル:
グラフ再表示時のRowLabelの指定について
グラフ作成で、X軸のラベル(RowLabel)を
10,20,30,40,50,・・・,110,120
と下記命令で表示させているのですが

再表示のとき i=1の   .RowLabel(i, 1) = ""  の行で
「error(1119):オブジェクトが初期化されていないか、または不正です。」
のエラーが出ます。
RowLabelって再表示するときは初期化の命令がいるんですか?
それとも、再表示にはMSChart自体を初期化する命令がありますか?

    With MSChart1.DataGrid
        For i = 1 To 120
            If i Mod 10 = 0 Then
                .RowLabel(i, 1) = Format(i, "000")
            Else
                .RowLabel(i, 1) = ""
            End If
        Next i
    End With

教えてください(T_T)

投稿時間:2004/04/30(Fri) 11:41
投稿者名:るしぇ
Eメール:
URL :
タイトル:
Re: グラフ再表示時のRowLabelの指定について
データを変更して RowLabel を設定しただけではエラーが再現できませんでした。
エラーが再現される最小限のコードを提示して下さい。

…ちなみにエラーが起こった時の i の値と MSChart1.DataGrid.RowCount の値は
どうなっていますか? i = 0 の時点で止まっていますか?

投稿時間:2004/04/30(Fri) 16:38
投稿者名:よこ
URL :
タイトル:
タスケテクダサイ(>_<)グラフ再表示時のRowLabelの指定について
> データを変更して RowLabel を設定しただけではエラーが再現できませんでした。
> エラーが再現される最小限のコードを提示して下さい。
>
> …ちなみにエラーが起こった時の i の値と MSChart1.DataGrid.RowCount の値は
> どうなっていますか? i = 0 の時点で止まっていますか?

Dim data(120, 3) As Integer
Dim GData(119, 0) As Integer

Private Sub Command1_Click()
    With MSChart1
        .chartType = VtChChartType2dLine
        .RowCount = 120
    For i = 1 To 119
        GData(i, 0) = i + 50
        MSChart1.ChartData = GData
    Next i
    For i = 1 To 120
        MSChart1.DataGrid.RowLabel(i, 1) = Format(i, "000")
    Next i
      
        .Visible = True
    End With
End Sub

です。
2回目にコマンドボタンを押すと、i=1でエラーになります。
何かおかしいのですか???
仕事でやってます。
明日からGWに入ります。
心が晴れないまま仕事が終わりそうです・・・
るしぇさん、、、そして、他の方もタスケテクダサイ<(_ _)>

投稿時間:2004/05/06(Thu) 10:13
投稿者名:るしぇ
Eメール:
URL :
タイトル:
Re: タスケテクダサイ(>_<)グラフ再表示時のRowLabelの指定について
…申し訳ありませんが、こちらの環境でエラーが再現できません。
(何度やっても成功してしまいます。)

とりあえず
開発環境の OS と VB と MSChart のバージョン(サービスパックのバージョン)
実行環境の OS のバージョン(サービスパックのバージョン)
を教えて下さい。

…あとは…う〜ん…
新規プロジェクトに上のコードを貼り付けて実行した時点でエラーが出るんですよね?
↓この辺に一通り目を通して何か気になることはありませんか?
http://support.microsoft.com/search/default.aspx?InCC_hdn=True&InMT_hdn=true&QuerySource=gASr_Query&Catalog=LCID%3D1041%26CDID%3DJA-KB%26PRODLISTSRC%3DON&Product=vbJPN&Queryc=MSChart&Query=MSChart&KeywordType=ALL&maxResults=150&Titles=false&numDays=&InCC=on&InMT=on

投稿時間:2004/05/06(Thu) 11:02
投稿者名:よこ
URL :
タイトル:
お手上げデス(>_<)グラフ再表示時のRowLabelの指定について
> …申し訳ありませんが、こちらの環境でエラーが再現できません。
> (何度やっても成功してしまいます。)
>
> とりあえず
> 開発環境の OS と VB と MSChart のバージョン(サービスパックのバージョン)
> 実行環境の OS のバージョン(サービスパックのバージョン)
> を教えて下さい。

えぇ!!
るしぇさんのPCではうまく稼動するんですか???
ひどい(>_<)なんで、ココだけ??

開発環境と実行環境(同じPC)のバージョン情報は

システム→Microsoft Windows Me 4.90.3000 NECのディスクトップです。
VB→→→Microsoft Visual Basic 5.0 (SP3) For 32-bit Windows Development
MSChart→これは、どこで調べるんですか??

と、こんなところです(ってこれで、あってます?)。

新規プロジェクトで、
初回目[Command1]を押すと、正常にグラフ表示をします。
しかし、次に[Command1]を押すと、エラーとなり止ります。
(グラフにデータの表示はできています。X軸のラベルだけ表示ができないのです・・・)

他に心当たりはないか。。。
教えてもらったホームページを覗いてみます。。。

あぁ、、、憂鬱です。。。
また、是非是非、、、ご教授ください!!

投稿時間:2004/05/06(Thu) 15:19
投稿者名:るしぇ
Eメール:
URL :
タイトル:
Re: お手上げデス(>_<)グラフ再表示時のRowLabelの指定について
' こちらの環境(Win2000(SP4) VB6.0 Pro(SP5) MSChart(Ver6.0.88.4))でエラーの再現に成功しました。
' (MSChart の Ver はコンポーネントの追加ダイアログから参照してるファイルパスが分かりますので
' ファイルのバージョン情報で見て下さい。)
' ただし条件がありまして、プログラム起動直後に Command3→1→2 もしくは Command3→1→3
' の順番で実行する必要があります。よこさんの環境下で起こる Command1→1 の繰り返し
' ではエラーは起こりませんでした。
' 原因は
'   Me.MSChart1.ChartData = GData
' の処理が上手くいっておらず、ラベル変更時に MSChart1.DataGrid を参照できないようです。
' …があくまで予想でしかないです。1回上手くいきだすとずーっとエラー出ません。(※こちらの環境では)
' 原因をはっきり解明する事は出来てませんが、もしかしたらこれで回避できるかも?。試してみて下さい。

'[VB6.0(SP5)]
Option Explicit ' 変数の明示的な宣言。

'Dim data(120, 3) As Integer
Private GData(119, 0) As Integer

Private Sub Command1_Click()
    On Error GoTo ErrTrap
    
    Dim i As Integer        ' ←変数の宣言が抜けてました。
    With MSChart1
        .Visible = False    ' 最後の .Visible = True の行の意味がグラフを非表示にして処理速度向上なら抜けている。
    
        .chartType = VtChChartType2dLine
        .RowCount = 120
        
        For i = 1 To 119
            GData(i, 0) = i + 50
        Next i
        .ChartData = GData  ' With の中で MSChart1 から参照する必要なし。ってゆーか119回セットする必要あり?1回でいいでしょ?
        
        With .DataGrid      ' こういった使い方もできます。
            For i = 1 To 120
                .RowLabel(i, 1) = Format(i, "000")
            Next i
        End With
      
        .Visible = True
    End With

    Exit Sub
ErrTrap:
    With Err
        If .Number = 1119 Then
            OnErrSub
            Command1_Click
        Else
            .Raise .Number, .Source, .Description
        End If
    End With
End Sub

Private Sub Command2_Click()
    On Error GoTo ErrTrap
    
    With MSChart1.DataGrid
        Debug.Print Now
        Debug.Print "RC  : " & .RowCount
        Debug.Print "0,0 : " & .RowLabel(0, 0)
        Debug.Print "1,1 : " & .RowLabel(1, 1)
        Debug.Print "RLC : " & .RowLabelCount
        .RowLabel(1, 1) = "Test"
        .RowCount = 10
        .RowLabel(1, 1) = "Test"
        Debug.Print "RC  : " & .RowCount
        Debug.Print "0,0 : " & .RowLabel(0, 0)
        Debug.Print "1,1 : " & .RowLabel(1, 1)
        Debug.Print "RLC : " & .RowLabelCount
    End With
    
    Exit Sub
ErrTrap:
    With Err
        If .Number = 1119 Then
            OnErrSub
            Command2_Click
        Else
            .Raise .Number, .Source, .Description
        End If
    End With
End Sub

Private Sub Command3_Click()
    On Error GoTo ErrTrap
    
    Dim i As Integer
    With MSChart1
        With .DataGrid
            Debug.Print Now
            Debug.Print "RC  : " & .RowCount
            Debug.Print "0,0 : " & .RowLabel(0, 0)
            Debug.Print "1,1 : " & .RowLabel(1, 1)
            Debug.Print "RLC : " & .RowLabelCount
            .RowLabel(1, 1) = "Test"
        End With
        For i = 1 To 119
            GData(i, 0) = i + 10
        Next i
        .ChartData = GData
        With .DataGrid
            .RowLabel(1, 1) = "Test"
            Debug.Print "RC  : " & .RowCount
            Debug.Print "0,0 : " & .RowLabel(0, 0)
            Debug.Print "1,1 : " & .RowLabel(1, 1)
            Debug.Print "RLC : " & .RowLabelCount
        End With
    End With

    Exit Sub
ErrTrap:
    With Err
        If .Number = 1119 Then
            OnErrSub
            Command3_Click
        Else
            .Raise .Number, .Source, .Description
        End If
    End With
End Sub

Private Sub OnErrSub()
    Debug.Print "******* Error : 1119 *******"
    Me.MSChart1.ChartData = GData
    MsgBox "更新処理が失敗しました。再度ボタンを押してみて下さい。"
End Sub

Private Sub Form_Load()
    Me.MSChart1.ChartData = GData   ' 事前にやっててもエラー回避できず。
End Sub

投稿時間:2004/05/13(Thu) 08:44
投稿者名:よこ
URL :
タイトル:
万歳\(^o^)/グラフRowLabelの指定
ず〜〜〜〜〜〜〜〜〜〜〜〜〜っと悩んでましたが
やっと、やっと、やっと、正常に動くようになりました!!
一時は、諦めモードに入ってて、半泣きになってましたが
昨日、なんとか、正常稼動を確認しました。
ホント、るしぇさんのおかげです。
助かりました。
また、疑問が出てくると思いますが
そのときは、おばかな私をお助けしてください。
ではでは、お礼まで<(_ _)>