
VB6.0でMSChartをタイマーを使い徐々にグラフを伸ばしたいのですが、上手くいきません。コマンドボタンを使いクリックしたと同時にタイマーを作動させて、ある値までグラフを増加させたいと思っているのですが、初心者同然なので詳しくお願いします。
Dim dat(4, 3) As Integer
Dim a As Long
Private Sub Command1_Click()
With MSChart1
.chartType = VtChChartType3dBar
.ColumnCount = 3
.RowCount = 4
For i = 1 To .RowCount
For j = 1 To .ColumnCount
.Column = j
.Row = i
.Data = dat(i, j)
Next j
Next i
.DataGrid.ColumnLabel(1, 1) = "(1)"
.DataGrid.ColumnLabel(2, 1) = "(2)"
.DataGrid.ColumnLabel(3, 1) = "(3)"
.DataGrid.RowLabel(1, 1) = "1月~3月"
.DataGrid.RowLabel(2, 1) = "4月~6月"
.DataGrid.RowLabel(3, 1) = "7月~9月"
.DataGrid.RowLabel(4, 1) = "10月~12月"
.Visible = True
End With
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
a = 0
MSChart1.Visible = False
End Sub
Private Sub MSChart1_OLEStartDrag(Data As MSChart20Lib.DataObject, AllowedEffects As Long)
End Sub
Private Sub Timer1_Timer()
a = a + 10
dat(1, 1) = a: dat(1, 2) = 100: dat(1, 3) = 110
dat(2, 1) = 30: dat(2, 2) = 110: dat(2, 3) = 110
dat(3, 1) = 40: dat(3, 2) = 120: dat(3, 3) = 110
dat(4, 1) = 50: dat(4, 2) = 130: dat(4, 3) = 110
If a = 100 Then
Timer1.Enabled = False
End If
End Sub
No.1ベストアンサー
- 回答日時:
データセットがボタンを押した時になってました。
一定間隔でグラフを伸ばすのであれば、
定期間隔でのイベント=タイマーイベント
で行うべきです。
ちょっと改造してみました。
Dim dat(4, 3) As Integer
Dim a As Long
Private Sub Command1_Click()
'チャート初期設定
With MSChart1
.chartType = VtChChartType3dBar
.ColumnCount = 3
.RowCount = 4
.DataGrid.ColumnLabel(1, 1) = "(1)"
.DataGrid.ColumnLabel(2, 1) = "(2)"
.DataGrid.ColumnLabel(3, 1) = "(3)"
.DataGrid.RowLabel(1, 1) = "1月~3月"
.DataGrid.RowLabel(2, 1) = "4月~6月"
.DataGrid.RowLabel(3, 1) = "7月~9月"
.DataGrid.RowLabel(4, 1) = "10月~12月"
End With
'タイマー起動
Timer1.Enabled = True
End Sub
Private Sub Form_Load()
a = 0 'タイマカウンタ初期化
MSChart1.Visible = False 'チャート不可視
Timer1.Enabled = False 'タイマー使用不可
Timer1.Interval = 1000 '1000ms(1秒)ごとに更新
End Sub
Private Sub Timer1_Timer()
Dim i As Long
Dim j As Long
'セットする値の作成
a = a + 10
dat(1, 1) = a: dat(1, 2) = 100: dat(1, 3) = 110
dat(2, 1) = 30: dat(2, 2) = 110: dat(2, 3) = 110
dat(3, 1) = 40: dat(3, 2) = 120: dat(3, 3) = 110
dat(4, 1) = 50: dat(4, 2) = 130: dat(4, 3) = 110
With MSChart1
'データセット
For i = 1 To .RowCount
For j = 1 To .ColumnCount
.Column = j
.Row = i
.Data = dat(i, j)
Next j
Next i
'もし不可視なら表示する
If Not .Visible Then
.Visible = True
End If
'更新した値を画面に反映
.Refresh
End With
If a = 100 Then
Timer1.Enabled = False
End If
End Sub
ありがとうございました。イメージしていた物ができるようになりました。今後はデータをAccessから取得できるようにしていきたいと思います。また機会があればいろいろと教えてください。ありがとうございました。
No.2
- 回答日時:
>今後はデータをAccessから取得できるようにしていきたいと思います。
また機会があればいろいろと教えてください。どうぞどうぞ、Accessの質問には答える人が多いから、すぐに解決すると思いますよ。
コメントからすると解決したのですか?
それともまだ問題があるのですか?
解決したのなら、別にポイントはいらないので、締め切りだけはするようにしてくださいね。
解決してないのなら、解決できてない部分を書き込んでくださいね。
もしその解決してない部分が、この問題とは別の部分であれば、新規に投稿してくださいね。
それでは がんばってください。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
matlabで、平均値を求める方法...
-
UTF-8で5~6バイトになる文字コ...
-
COBOLのCOMP形式について
-
エクセルシート名の制限を変更...
-
データの値の近いものをグルー...
-
10Mバイトて文字数に すると何...
-
SQLで1バイト、2バイト混在...
-
C++ Builderで文字列をバイトに...
-
ListView重複データ削除
-
Excel VBA メール作成について ...
-
COBOL PICTUREで X,S,Vの意味
-
printfの%eで指数部分の桁数を...
-
バイト列とバイナリ列の違いが...
-
【VB2005】テキストボックス内...
-
半角、全角の判別方法
-
VBAでShift-JISのURLエンコード
-
バイト境界とは
-
検索窓の設置について
-
64bit対応
-
DataGridViewの特定列に入力さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlでのテキスト処理
-
多次元配列(リファレンス)
-
該当項目表示について
-
MATLAB(マトラボ)とcsvファ...
-
VBScript
-
複数のCSVを一度にダウンロード
-
matlabで、平均値を求める方法...
-
VBA エクセルで1列で表示したい。
-
C言語のプログラム問題
-
perlで重複をさせない処理
-
画像アップロード時のエラーハ...
-
dat
-
VBAでの日数のカウント
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
char str[256]の256の意味は?
-
COBOLのCOMP形式について
-
DataGridViewの特定列に入力さ...
-
Excel 1セル当りの文字数が2...
-
バイト列とバイナリ列の違いが...
おすすめ情報