CSVファイルを折れ線グラフ化するプログラムを作っているのですが・・・
以前、似たようなものをEXCELのVBAでやったことはあります。
今回は、使用先PCにEXCELが無いので、EXCELを使わないでやりたいと思い、
無料のVB2008をMicrosoftから落としてきて、手探りで始めています。
:LOG
:LOGGING_ID,3,"湿度"
:SERIAL_ID,13
:DEVICE_NUM,3
:RECORD_NUM,100
:DEV_COMMENT,"NO.1 湿度","NO.2 湿度","外気湿度"
:DEV_TYPE,BIN16,BIN16,BIN16
:DISP_TYPE,DEC,DEC,DEC
:DEV_SIZE,1,1,1
2010/10/29 08:30:50,498,0,0
2010/10/29 08:31:49,498,0,0
2010/10/29 08:32:49,497,0,0
・
・
・
一日1ファイル、1分ごとに記録された湿度のデータが入ったCSVファイルです。
これを、
選択した日付のファイルを開き、
グラフ目盛を”1分ごと””10分ごと”、”1時間ごと”に
任意で変えて表示できる
折れ線グラフを作ろうとしています。
DateTimePickerを使って、日付の指定、該当ファイルの有無、などは出来ました。
ですが、その後の、するべき方向性がまったっく見えてきません。
(1)指定したCSVファイルを開く
(2)一連の「:」行を削除
(3)先頭行に「,NO.1 湿度,NO.2 湿度,外気湿度,」を挿入
(4)指定した間隔分の行を抽出(10分ごとなら、00分、10分、20分、30分、40分、50分の行だけ抽出)
(指定間隔はRadiobuttonで選ばせようと思っています。)
(5)作業用のCSVファイルとして保存
(4)Chartにて表示
こんな流れで合っていますか?
データベースを使うんですか?(←SQLだのADOだの、必要なら、ゼロから覚えなければならない状態です)
参考書よんだり、webで調べたりしているのですが、
VBから直接、csvを編集(行の削除、挿入)が出来るのか、
そして、別ファイルとして保存できるのかが、見えません。
訳がわからなくなってしまいました。
EXCELを使えば、楽ちんなんですかね?
ただ、EXCELでのVBAも、少しかじった程度なんですが。
なんとか道筋だけでも教えていただけたら、と思います。
お願いします。
No.1ベストアンサー
- 回答日時:
エクセルでやれば、グラフを描くところは、エクセル(VBA)がやってくれるので、圧倒的に楽。
CSVファイルをオープン
CSVレコードを1レコード読む
不要なレコードは読み飛ばす
時間間隔ごとに、該当レコード分は処理、それ以外は読み飛ばす(またはその間隔の平均なりを採る)
レコードをSplit関数で、カンマ(ディミタ)で分離
シートに各行にデータを書き出す。シートの1行下をポイント。
次以下のレコードで上記を繰り返し
Et ENDでCSVファイルをクローズ
シートのデータを対象にグラフを描かせる。
エクセルでグラフを描かせるのはシートに、無駄のないでーたが一旦書き出されることが必要条件です。
このVBAでのコードがどうなるか、はグラフを描かせるマクロの記録から類推し、マクロの記録を修正する。ただデータ数が多いと実際的に使えるグラフになるか未経験で判らない。巻物みたいになったら、どうだろうか。
ーーー
VB.NETでは、グラフを描くようなツールが無ければ(市販とか。購入する金が無ければ
http://detail.chiebukuro.yahoo.co.jp/qa/question …などで言っているコンポーネント)、
上記のCSVファイルの各レコード処理を行い(Splitまで)Imageコントロールに
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
Dim ChartLeft As Integer = 80 '左位置
Dim ChartRight As Integer = PictureBox1.Width - 50 '右位置
Dim ChartHeight As Integer = 50 '上方位置
Dim ChartLower As Integer = PictureBox1.Height - 10 '下方位置
Dim Graphics As System.Drawing.Graphics = PictureBox1.CreateGraphics
Dim ChartAxis As New Pen(Color.Black, 2)
Graphics.DrawLine(ChartAxis, ChartLeft, ChartHeight, ChartLeft, ChartLower)
Graphics.DrawLine(ChartAxis, ChartLeft, ChartLower, ChartRight, ChartLower)
Graphics.DrawLine(ChartAxis, ChartLeft + 30, ChartHeight + 30, ChartLeft + 40, ChartHeight + 10)
Graphics.DrawLine(ChartAxis, ChartLeft + 40, ChartHeight + 10, ChartLeft + 60, ChartHeight + 70)
Graphics.DrawLine(ChartAxis, ChartLeft + 60, ChartHeight + 70, ChartLeft + 90, ChartHeight + 100)
End Sub
WEBにあったコードを一部改変しました。3点を結ぶ折線の例(軸付き)。
この下3行の部分をCSVファイルを読んでカンマで分離したデータでデータ数だけ繰り返す。
しかし実際にやるには、諸々の多数の解決すべき点が出てくるのは目に見えている。多数データで
纏め上げた経験が無いので、実際役立つか判らない。
グラフには目盛や反例やタイトルなど必要だし、自作は面倒なことだろう。
ーーー
Split関数は、VB.NETで
http://www.atmarkit.co.jp/fdotnet/dotnettips/317 …
テキストファイルをVB.NETで読む
http://www.cocoaliz.com/vb.net/index/25/ など
Googleででも、トッピックスごとに照会する。
お礼遅くなりました。
今回の件は、データベース化するほどのものではないと、知人に判断され、
時間もないことで、データベース化はあきらめました。
少し勉強が必要なので、がんばります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- その他(プログラミング・Web制作) DOSコマンドに詳しい方、お知恵をお貸しください 5 2022/11/04 20:55
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
CSV形式での保存時に”文字列...
-
csvファイル 項目数取得
-
バッチでCSVを処理する時、空の...
-
複数のcsvファイルをExcelに一...
-
エクセル形式のファイルの読み込み
-
CSVファイルの項目行を削除...
-
csvファイルでの日付設定「yyyy...
-
csvファイルから列を選択しchar...
-
CSV形式のファイルを読み込んで...
-
マクロから出力されるcsvのダブ...
-
CSVファイル作成
-
データ解析ソフトRでのファイル...
-
【ExcelVBA】UTF-8の文字コード...
-
エクセルVBA 大容量CSVファイル...
-
CSVファイルをMDBに取り込む
-
VBSでソート&ファイル分割
-
VB6.0 CSVファイル読み込みに...
-
C# datagridview csv 読込
-
複数のCSVファイルのAccessテー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
複数のcsvファイルをExcelに一...
-
CSV形式での保存時に”文字列...
-
csvファイル 項目数取得
-
csvファイルでの日付設定「yyyy...
-
マクロから出力されるcsvのダブ...
-
バッチでCSVを処理する時、空の...
-
csvファイルのデータの一部を取...
-
エクセルVBA 大容量CSVファイル...
-
csvファイルを列数ごとに分割す...
-
PHP.laravelについて
-
COBOLでCSVをインプットにして...
-
COBOL85でのCSVファ...
-
複数のCSVファイルのAccessテー...
-
データ解析ソフトRでのファイル...
-
【C#】パス名で無効な文字
-
VBAでcsvファイルを読み込んで...
-
特定文字を入ってるCSVの特定の...
-
CSVファイル作成
-
【エクセル マクロ】読み込ん...
おすすめ情報