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

投稿時間:2003/10/14(Tue) 09:24
投稿者名:HB
Eメール:
URL :
タイトル:
MSChartのY軸の倍率
みなさん おはようございます(^^

MSChartのY軸の目盛りなんですが、
例えば100万円から500万円までの表示をつける場合、
1000000、5000000などの数字が並びますよね。

グラフが大きければいいんですが、小さい場合、これが結構場所を取るんです。
そこで表示を100とか500で表示して、単位の表示で「万円」とすればすっきりします。
でもグラフからすれば、
これは単なる100、500の数値なので表示はグラフの上端に張り付いてしまいます。

そこで倍率を、この場合10000に設定して、
グラフにその倍率を認識させる事が出来れば解決すると思いますが、
このような方法は可能なのでしょうか?

WindowsXPのVB6.0proを使用しています。

投稿時間:2003/10/14(Tue) 10:28
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: MSChartのY軸の倍率
> これは単なる100、500の数値なので表示はグラフの上端に張り付いてしまいます。

上端に張り付いてしまうとはどのような事でしょうか?

> そこで倍率を、この場合10000に設定して、
> グラフにその倍率を認識させる事が出来れば解決すると思いますが、

よく意味が理解できないのですが、Excelのようにデータの桁を調整してやれば
どうですか?
データ=データ/1000 のようにして表示すればいいかと。

又、必要により下記のように目盛りを変更して下さい。

    With MSChart1.Plot.Axis(VtChAxisIdY).ValueScale
        .Auto = False
        .Maximum = 2000          '最大値
        .Minimum = 200           '最小値
        .MajorDivision = 10     '目盛り線の数(等分)10点毎
        .MinorDivision = 2      '補助目盛り線等分   5点毎
    End With

投稿時間:2003/10/14(Tue) 11:31
投稿者名:HB
Eメール:
URL :
タイトル:
Re^2: MSChartのY軸の倍率
花ちゃん 毎度ありがとうございます。

> 上端に張り付いてしまうとはどのような事でしょうか?
  例えばY軸目盛りのスケールが100〜500に、1000のデータを表示させた場合、
  その表示ポイントはグラフの最上端に表示されてしまう事です。

> データ=データ/1000 のようにして表示すればいいかと。
  それも考えたんですが、現在、○○.mdbからデータを読み込んで、
  それを直接MSChartに貼り付けています↓
  
            MSChart1.DataSource = Adodc1
              Set Adodc1.Recordset = rs

  それでデータを1/1000にするためには、レコードセットから一旦データを読み込んで、
  1/1000にしてからそれをMSChartに貼り付ける操作になります。
  したがって表示されまでの時間が長くなるのとプログラムが複雑になるので、
    出来れば避けたいと考えています

  方法がなければやらざるを得ませんが・・・。

投稿時間:2003/10/14(Tue) 11:45
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: MSChartのY軸の倍率
そもそも貴方のおしゃっている事は人間が手で書いてもできませんよね
目盛りの単位を万の位にしたならデータもその万の位にしたもので
ないと、そのグラフにあった表示にならないはずですが。
目盛りを最大目盛りを500にしたグラフに2000の値を表示させようと
思う事事態が間違いで当然表示しきらないので一番上の目盛り位置まで
表示します。
Excelのグラフだって内部的にデータの桁調整をしているはずですよ。

投稿時間:2003/10/14(Tue) 13:14
投稿者名:HB
Eメール:
URL :
タイトル:
Re^4: MSChartのY軸の倍率
まさに花ちゃんのおっしゃる事の裏返しになると思うんです。
もしMSChartに、Y軸の倍率設定のプロパテーなりオブジェクトがあって、
それを設定すればMSChartの方でデータを1/倍率にして表示してくれると思うんです。
そうすればMSChartのY軸の目盛り表示の桁数は、1/倍率で済むはずになるかと・・・。
そういったオブジェクトなりプロパテーがあるかどうかをお尋ねしている訳です。

投稿時間:2003/10/14(Tue) 13:36
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: MSChartのY軸の倍率
> そういったオブジェクトなりプロパテーがあるかどうかをお尋ねしている訳です。
そのようなものがないから、

>Excelのようにデータの桁を調整してやればどうですか?
>データ=データ/1000 のようにして表示すればいいかと。

と申し上げたのです。
Excelを見れば解りますが、Excelでもそのようにしているはずです。
表示単位をComboBoxで選べば表示するデータをその桁に合せるように
処理しているかと思います。

2行10列のデータなら下記のようにすればいいかと
単位や系列数は変数で処理すればExcelと同様になります。

Private Sub setTani()
'表示するデータの桁合せ
    Dim i As Long, j As Long
    With MSChart1
        For i = 0 To .ColumnCount - 1
            .Column = i + 1
            For j = 0 To .RowCount - 1
                .Row = j + 1
                .Data = .Data / 1000   'sngTani
            Next j
        Next i
     End With
End Sub
このくらいの処理なら10分の1秒も掛からないでしょうし、複雑だとも思えないのですが。