VB2010Expressを使用しています。
Cahrtで2点を結んだ線を何本も書かせていますが、
With Chart1
.Series.Clear()
For m = 1 To Num
.Series.Add(m - 1)
.Series(m -1).ChartType= _
System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line
.Series(m - 1).Points.AddXY(StartY(m), StartX(m))
.Series(m - 1).Points.AddXY(EndY(m), EndX(m))
Next
End With
このやり方だと線の本数が100本、200本程度までならいいのですが、数百本、1000本になると、
とてつもなく処理(描画?)の時間が掛かるため、以下のように変更してみたのですが、
With Chart1
.Series.Clear()
.Series.Add(0)
.Series(0).ChartType = _
System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line
For m = 1 To Num
.Series(0).Points.AddXY(StartY(m), StartX(m))
.Series(0).Points.AddXY(EndY(m), EndX(m))
Next
End With
これだと、新しくSeriesを追加しないので時間がかなり速くなるのですが、全ての点がつながって
しまいます。
どのようにしたら、線が別々に書けるのでしょうか?
No.1ベストアンサー
- 回答日時:
おそらく、あなたの目的が『罫線』とか『図形』を描きたい(UMLとかフローチャートみたいのが描きたい) のだと思うのですが、この用途では Cahrt を使うこと自体が間違っていると思います。
Chart はあくまで『グラフを作成するコントロール』なので、『線の本数が数百本』 という使い方を想定していません。(数百本の折れ線グラフってあんまり見ないですよね)このような用途は、System.Drawing を使って自前で描画するのことになると思います。以下なんかを参考にして工夫してみてください。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
※.NET Windows Form の Drow は元々とっても遅いので、WPF も検討することをお勧めします。
回答ありがとうございました。
わたしは、ExcelVBA初心者ですが、元々ExcelVBAで作ったものをVBでと思い、作っています。
VB自体は初めてなのでまだまだ知らない事が多すぎるようです。
現在の作り方では9割程度完成しており、実際には線が数百本となることはまず無い(多くても2百本
くらいかな?)のでこのまま進めてみようと思います。
完成後、shitabaさんに教えて頂いた、System.DrawingやWPF(正直言いますと何のことだかよく
分かっていませんが)を勉強して、出来れば改良したいと思います。
この先もっと複雑なものも作ってみたいと思っています(自分の技量では恐らく出来ないレベルのもの
ですが...)ので、それにはもっと色々と勉強する必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- TOEFL・TOEIC・英語検定 With its architecture and gardens and a wealth of 0 2022/12/17 16:11
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- 英語 英語3 課題でこの英語の文章のSVOの分析や()等の括りを出されたため、できるだけ完璧にしたいのです 1 2022/12/18 02:25
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- 英語 □What ~ for ? なんのために~? □How come +S+V~?なぜ~? □What 5 2022/03/24 14:14
- 据え置き型ゲーム機 (1)Xbox Series X|S や PlayStation 5 で “DAM” の カラオケ 1 2023/03/26 14:55
- Visual Basic(VBA) リストボックス セルの値を取得する 1 2022/05/21 20:47
- 英語 「S help (to) do for A」「SはAのために〜するのに役立つ」という文は「S hel 2 2023/08/09 12:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
ドラッグして描画図形を拡大縮...
-
C#でPictureBox内での図形移動...
-
COLORREF color の反転色
-
線を引くには?
-
画面の再描画について
-
線の描画速度
-
VB .net Form_Load時、または関...
-
win32api複数のタイマーを同時...
-
DrawLine
-
Word 描画オブジェクトを削除...
-
VBA listBoxから
-
VBA シートのボタン名を変更し...
-
ユーザーフォームを表示中にシ...
-
worksheetFunctionクラスのVloo...
-
VBA(エクセル)で自動的にボタン...
-
【Excel VBA】マクロをボタンに...
-
「Columns("A:C")」の列文字を...
-
エクセルエラー13型が一致しま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ListBoxで改行したい
-
for文の実行速度を遅くしたいの...
-
給紙トレイをダイアログを使わ...
-
Word 描画オブジェクトを削除...
-
VB.NETでグラフィックを描くと...
-
C#を用いて描画する四角形の角...
-
C# DrawImage 物理サイズでな...
-
ビットマップに描画をしてピク...
-
PowerPoint の VBA
-
画面に絵を出す方法
-
DrawLineで引いた線が消えてし...
-
VC++ ドラッグしながらの図の...
-
円の頂点の求め方を知りたいです。
-
MFCでのコンボボックスについて
-
画面の再描画について
-
Windows10のC#のピクチャーボッ...
-
フォームに描画して表示をスク...
-
VB PictureBoxの描画範囲
-
PictureBoxのダブルバッファリ...
-
C#で壁の当たり判定と自キャラ...
おすすめ情報