[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2004/11/12(Fri) 14:40
投稿者名:アルゼイド
Eメール:
URL :
タイトル:
グラフの描画
グラフを描くために目盛りの線を書きたいのですが、うまくいきません。教えてください
Private Sub グラフ_object()
     pic1.Cls
        a = 1
        b = 10
    For X = 500 To 7300 Step 6800 / b
        pic1.DrawStyle = 2
        pic1.Line (X, 300)-(X, 7100), QBColor(8)
        pic1.CurrentX = X - 150
        pic1.CurrentY = 7100 + 50
        pic1.Print a
        a = a + 1
        Next X
        c = Text22.Text
        d = Text22.Text
    For Y = 300 To 7100 Step 6800 / d
        pic1.DrawStyle = 2
        pic1.Line (500, Y)-(7300, Y), QBColor(8)
        pic1.CurrentX = 50
        pic1.CurrentY = Y - 80
        pic1.Print c
        c = c - (Text22.Text - Text23.Text) / d
        Next Y
        pic1.DrawStyle = 0
        pic1.Line (500, 300)-(7300, 7100), QBColor(0), B
        pic1.CurrentX = 7350
        pic1.CurrentY = 7350
        pic1.Print "[pH]"
        pic1.CurrentX = 250
        pic1.CurrentY = 60
        pic1.Print "[IR]"
End Sub

    Text22.Text = 10
    Text23.Text = 0 です。

なんですが、X軸の目盛りを1〜10にしたいのです。このままだと1〜11になるので、b = 9 にしたのですが、そうすると表示する場所はあるのに目盛りが1〜9までしか表示されないのです。
それとY軸のほうもText22を9にして実行すると目盛りの0の表示が消えてしまいます。
どうすればいいのでしょうか?
よろしくお願いします。

投稿時間:2004/11/12(Fri) 16:43
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re: グラフの描画
>     For X = 500 To 7300 Step 6800 / b

これだと11回ループするので、1〜11になります。

For X = 1180 To 7300 Step 6800 / b
または
For X = 500 To 6620 Step 6800 / b
にしてください

投稿時間:2004/11/12(Fri) 18:28
投稿者名:アルゼイド
Eメール:
URL :
タイトル:
Re^2: グラフの描画
LESIAさんレスありがとうございます。

X軸の長さを変えずにはできないんでしょうか?
Xが500〜7300なのでその間が6800になってそれを10分割すると11回ループするので、
9分割すれば10回ループになるんじゃないかと考えたんですけど、pic1.Print a で
10が表示されないのが謎なんですよ・・・。

投稿時間:2004/11/12(Fri) 19:52
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re^3: グラフの描画
> LESIAさんレスありがとうございます。
>
> X軸の長さを変えずにはできないんでしょうか?
> Xが500〜7300なのでその間が6800になってそれを10分割すると11回ループするので、
> 9分割すれば10回ループになるんじゃないかと考えたんですけど、pic1.Print a で
> 10が表示されないのが謎なんですよ・・・。

なぜかは、

a = 1
For x = 500 To 7300 Step 6800 / 9
Debug.Print "x = " & x & " , a = " & a
a = a + 1
Next x

を実行してみれば判りますが、Stepの値が半端なので、10回目のループが
回らないんです。

X軸の長さを変えずにやるなら、aをループ変数にするとか

b = 9

For a = 1 To 10
   x = 500 + 6800 * ((a - 1) / b)
   pic1.Line (x, 300)-(x, 7100), QBColor(8)
   pic1.CurrentX = x - 150
   pic1.CurrentY = 7100 + 50
   pic1.Print a
Next a

投稿時間:2004/11/14(Sun) 21:55
投稿者名:アルゼイド
Eメール:
URL :
タイトル:
Re^4: グラフの描画
LESIAさんありがとうございます!
明日ためしてみます
返信おくれてすみませんでした。