• 締切済み

Excelファイルの処理、どのプログラムがよい?

.csvファイルが100個くらいあります。 各ファイルの行数は500~65000ほど、列数は7前後です。 これらのファイルを読み込み、単純操作を行い、結果表示をしたいというのが目的です。 1.具体的にはフォームにファイル一覧が表示される 2.一覧からファイルをクリックすると、ファイルがメモリあるいは、グリッド(?)などに読み込まれる 3.読み込まれたファイルに単純なExcelの処理をほどこす(MAX,MIN関数や加減乗除など) このプログラムを作成するには、どのアプリケーションで作成すべきですか? 自分ができそうなのは、VB.net、Excel、VBAなど(全てサンデープログラマー程度)です。 Javaとか使えません。

みんなの回答

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.5

行数が足らなくても、シートを複数枚使えばいいだけの話なので、 素直にExcelVBAを使えばいいと思いますよ。Excelだけでその作業 が可能なら、キー記録機能(マクロの自動作成機能)を使えば ほぼ一発でできてしまいます。 VBやAceesのいいところは「大量の作業が一括できるトコ」ですが、 「仕様がきっちり決まらないとプログラムができない」という大きな デメリットがあります。VBAならば「ファイルを読み込んで、Excel上 で見やすく整理する」までで作業を止めて、そのあとはExcel上での 手作業に任せる、という逃げ道があって、自由性が高いです。 特に「読み込んでからデータベース処理をする」「ピボットテーブル を使う」なんて場合は、プログラムを組むよりExcelに任せた方が ずっと融通性が高いですし、プログラムも超簡単になりますよ。

  • wormhole
  • ベストアンサー率28% (1621/5657)
回答No.4

私なら、その選択肢ではVB.NETでやりそうな気はしますが、 ご自分で実現可能と思われる組み合わせでされるのがよろしいかと思います。 ただExcelのバージョンが書かれていませんが2007までは最大65536行までしか扱えませんのでお気を付けください。

  • panacon
  • ベストアンサー率31% (214/679)
回答No.3

h260703 さんへ 1つのCSVファイルで500~65000行あって、これが100個もあるとすると、Excelでは行数が足らなくなるのではと思います。だとすると、Accessの方が良いと思います。経験では100万行でも格納できます。Excelで作れた場合は、関数はその都度VBAで動かすようにして、セルに関数を貼りつけないようにしないと、次回開くのに、重すぎで時間がかかると思います。CSVの名前の付け方にルールがあれば、Accessのインポートの繰り返しで、名前を変化させながらインポートするように組めば、フォームのボタンにマクロを貼りつけられるのではと思います。ついでに、必要な計算をクエリで作っておいて、このクエリをExcelでエクスポートしてしまえば、常に、同じ物差しの集計がワンクリックでできると思います。

noname#228894
noname#228894
回答No.2

ご自身のスキルを気にする状況かつ、処理内容が単純計算だけであれば、一番使い慣れたものが最適で、もし普通のVBが使えるんだったらVBAよりは画面設計などの融通がききやすいので、結果的に楽になるのではというのが一般論です。 もしExcelの関数を使ってる場合、それをVBなりで自前処理することになるため、使う関数によってはちょっと面倒かも知れませんが。

  • catpow
  • ベストアンサー率24% (620/2527)
回答No.1

3で、「単純なExcelの処理をほどこす」とありますが、これが色々あるなら、プログラミングできません。 ですから、普通にエクセルを使って、1つずつCSVファイルを読み込み、シートに式を追加して、1つずつエクセル形式で保存すればいいのでは?

関連するQ&A

  • csvファイルを列数ごとに分割するExcelマクロ

    csvファイルを列数ごとに分割するExcelマクロが書けずに困っています。 これがないため作業が遅くなり困っています。 横に長い(列数が多い)csvファイルを指定した列数ごとに分割して複数のcsvファイルに分けたいのですができません。 行数ごとに分割して複数のcsvファイルに分けるExcelマクロは調べると複数出てくるのですが... 何かいい方法はないでしょうか? 以下がコードです。 https://yu-syan.sakura.ne.jp/?p=87 たぶんLine Input # ステートメントで行数ごとに読込している部分を列数ごとに読込すればできると思うのですがその動作をするステートメントが無いため困っています。 http://officetanaka.net/excel/vba/statement/LineInput.htm 以下がcsvファイルです。 https://drive.google.com/file/d/1W0O4R10ibNVRnzDzeZ9AKSRT9gueS3GZ/view?usp=drive_link #VBA #Excel #マクロ #csv #データ処理

  • ACCESS、EXCELの限界?

    ACCESS、EXCELで表示できる列数の限界について教えて下さい。 VBからの操作で、Oracleのテーブルの内容をACCESSで表示する仕組みを考えています。 Oracleのテーブルの列数が350近くもあり、ACCESSで表示することができません。CSVで出力したとしても、Excelで表示できません。どちらも255以上の列は表示できないようでした(256列以上は途切れて表示される)。 となると、Oracleのテーブルの内容をVBのグリッドに表示するしか方法はないでしょうか? もしそれしか方法が無いようであれば、グリッドに表示するか、ビューか何かを使用して表示列を絞り込む(これは最終手段にしたいです)かどちらかにしなければなりません。 一番いいのは、そのままACCESSに表示することなんですが。テキストで延々と出力するだけでは、データの編集がやりにくいので困っています。 よろしくお願いいたします。 開発環境は、Win2000(SP2)、Oracle8.1.6、VB6.0(SP3)、OFFICE2000(SR-1、SP2)です。

  • CSVファイルを列ごとに読み込む処理について

    はじめまして。 よろしくお願いいたします。 プログラミングに興味をもち、JAVAに触れている者です。 現在eclipseでCSVファイルを列ごとに読み込んで表示する、というプログラムを作成しているのですが、コンパイルエラーを除去することができません。 エラー内容は 「処理されない例外の型 FileNotFoundException」 です。 これを見る限りでは読み込むファイルがないということらしいのですが、CSVファイルはちゃんと作成し、作成中のプログラムのファイルがあるディレクトリに置いてあります。 原因を探したいのですが、eclipseのこともjavaのこともよくわかっていないため、まるで見当がつきません。 どうかご教示をお願いいただけませんでしょうか? 以下が作成中のプログラムです。 package ioTest; import java.io.BufferedReader; import java.io.File; import java.io.InputStreamReader; import java.io.FileInputStream; public class IOsample { public static void main (String[] args){ BufferedReader br = null; File csv = new File("sampleCSV.csv"); br = new BufferedReader( new InputStreamReader( new FileInputStream(csv))); while (br.ready()){ System.out.println(br.readLine()); } br.close(); } } レベルの低い質問で申し訳ありませんが、なにとぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • エクセルマクロ、複数のCSVファイルを読み込んで一つのファイルに繋げる方法

    別質問で教えて貰った方法(下記URLの#2)で、複数のCSVファイルを 読み込むマクロはわかったのですが、それらのファイルを一つに まとめる方法がよくわかりません。 新しいシート(or結果保存用のブック)を用意して、ここに順に繋げて いきたいのですが、どうしたら良いのでしょうか。 ちなみに、入力されるCSVファイルのデータの入っている列数は固定 なのですが、行数はファイル毎に異なります。 <大元の質問> http://oshiete1.goo.ne.jp/kotaeru.php3?q=359726

  • csvファイルのデータ列数を取得したいのですがうまくいきません。

    csvファイルのデータ列数を取得したいのですがうまくいきません。 VB2010、StreamReaderでファイルを読み込み、 以下のコードで列数を取得してみたのですが、 数値変数の「列数」に7が入ります。 実際は3列しかありません。 SR.ReadLine()で読み込んだデータ右端部にいらないカンマがいくつか並んでいました。 列数 = UBound(Split(SR.ReadLine(), ",")) どう修正したらよいでしょうか。 また、csvファイルのデータ列数を簡単に取得する方法はないでしょうか? 教えてください。 お手数をおかけしますがよろしくお願いします。

  • 【VBA】ExcelマクロでCSVファイルに保存したデータが""で囲まれてしまう

    添付図のような、Excel2003で作成した表内のデータを CSVで保存するマクロを作成したのですが、 図のように、CSVファイルに「""」で値が囲まれた状態で、 保存されてしまいます。 下記にマクロを記載しますので、 どうすれば文字列が「""」で囲まれずに、 カンマ区切りだけのデータで出力されるのか、 ご存知の方おられましたら、ご教示お願い致します。 Sub csv保存() Dim フォルダ名 As String Dim パス名 As String Dim ファイル名 As String Dim データ As Variant Dim 行数 As Long, 列数 As Integer Dim i As Integer, j As Long, k As Long ファイル名 = "test.csv" フォルダ名 = "csv" パス名 = ActiveWorkbook.Path & "\" & _ フォルダ名 'csvフォルダが存在しなければ作成する If Dir(パス名, vbDirectory) = "" Then MkDir パス名 End If ChDir パス名 Open ファイル名 For Output As #1 For i = 1 To Worksheets.Count Worksheets(i).Activate Worksheets(i).Cells(1, 1).Select ActiveCell.CurrentRegion.Select 行数 = Selection.Rows.Count 列数 = Selection.Columns.Count For j = 1 To 行数 For k = 1 To 列数 - 1 データ = Selection.Cells(j, k) _ .Value Write #1, データ; Next k Write #1, Selection.Cells(j, 列数) _ .Value Next j Next i Close #1 End Sub

  • Illustratorでグリッドの行数と列数を変更するには?

    Adobe Illustrator CS 日本語版 で、「グリッド」(表)を作成し、行数と列数を変更するにはどうすればよいですか?

  • VB6.0 で CSVファイルをEXCELで起動

    VB初心者です。 質問内容なのですが、 VBで「ドライブ/ディレクトリ/ファイルリストボックス」を用いて、ファイルボックスから表示されたファイルをクリックしてCSVファイルをEXCELで起動したいプログラムを作成したいのですが、 CSVファイルをクリックしたときにEXCELで起動する部分のプログラムがわかりません。 言葉足らずの部分が多々あるかと思いますが、手が空いたときにでも、御教授を宜しくお願い致します。

  • VB6.0同一プログラム上で複数のExcelファイルの編集をしたいのですが…

    目にとめていただき有難うございます。 VBについては初心者です。宜しくお願い致します。 VB6.0で、フォーム上で指定した2つのExcelファイルについて、それぞれ特定の行・列を削除してCSVとして保存、そのデータを使って処理を行うプログラムを作成しようとしています。 同じVB6.0のプログラム上で、複数のExcelファイルに対して編集をかけることは可能でしょうか。 プログラムの流れとしては (1)エクセルオブジェクトの新しいインスタンスを作成 (2)エクセルファイル1を開き、特定行を削除する (3)エクセルファイル1をCSVとして保存、閉じる (4)オブジェクトを解放する (5)エクセルオブジェクトの新しいインスタンスを作成 (6)エクセルファイル2を開き、特定行を削除する (7)エクセルファイル2をCSVとして保存する (8)オブジェクトを解放する というものです。 (1)~(4)と(5)~(8)は同じSubプロシージャでファイルのパスだけ変えるようにしています。 (1)~(5)迄は素直に行くのですが、(6)の削除行を指定する段階で ‘Rows’メソッドは失敗しました’_Global’オブジェクト と出てしまう状態です。 (1)~(4)は問題なく動き、ファイル1の編集もきちんと出来ているため、混乱しております。 同じコードでパスだけ変えてやろうという考えが無理な話なのか、コードの組み方が悪いのか… 質問で不明瞭点があれば説明させて頂きますのでご指摘下さい。 宜しくお願い致します。 #ソースまで出した方が良かったのでしょうか…

  • DataGridの列の数、行の数

    いつもお世話になっております VB6.0でDataGridをつかって Accessのようにデータを表示しているのですが 表示しているデータの最大列数と最大行数を 求めたいのですが、やり方がわかりません どうしたら最大列数と最大行数を求められるか 教えて下さい!お願いします

専門家に質問してみよう