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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
matlabで、平均値を求める方法...
-
MATLAB(マトラボ)とcsvファ...
-
ポインター引数の関数でコンパ...
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
バイナリとBCDコード
-
stable diffusionのエラー
-
エクセルシート名の制限を変更...
-
char str[256]の256の意味は?
-
COBOLのCOMP形式について
-
Excel VBA メール作成について ...
-
Excel 1セル当りの文字数が2...
-
DataGridViewの特定列に入力さ...
-
ビットスワップとバイトスワッ...
-
1KBが1024byteな理由
-
ピクセル,dpiから容量(バイト...
-
ビットデータのチェック方法
-
SQLで1バイト、2バイト混在...
-
VBAでUnicodeしか存在しない文...
-
エクセルVBA:日付データの変換...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA エクセルで1列で表示したい。
-
matlabで、平均値を求める方法...
-
MATLAB(マトラボ)とcsvファ...
-
文字型変数を使って2進数表示す...
-
いつどこゲームのようなテキス...
-
VBScripの2次元動的配列
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
Excel VBA メール作成について ...
-
stable diffusionのエラー
-
DataGridViewの特定列に入力さ...
-
エクセルシート名の制限を変更...
-
なんでブラウザでPHPを動かすた...
-
COBOLのCOMP形式について
-
ポインター引数の関数でコンパ...
-
char str[256]の256の意味は?
-
メールの件名をデコードしたい
-
バイナリとBCDコード
-
Excel 1セル当りの文字数が2...
-
異なるドメインのサイトでcooki...
おすすめ情報