• 締切済み

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

imogasiの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

列指定は1つずつでよいのか、複数列分を1タイルにすることがあるのか。 一般に、プログラムを考えるとき、1つか、複数(連続か飛び飛び)か、飛び飛びか、は難しさを左右するので、意識して(設問に)説明すること。 元データの画像も(質問に挙げることは)大切だが、アウトプットのfデータ例も、より重要と思はないですか。 ーー VBAのLine Inputで、そのCSVファイル(の1レコードを)を変数に読み込み、VBAのSplit関数で、カンマごとに分割して、配列に入るので、インデックスを指定すればの望みの列データだけ取り出せる。 レコード全体の処理を繰り返し、配列の指定インデックスのデータに変数にカンマを加えて、変数に蓄積し、レコードが終われば、ファイルにどのように書きだすか。最後だけはカンマを添えないようにする。 あるいは1列1レコードにするのか? どちらにしても、SPLITで配列化できるので、本件はやさしい問題(VBA経験の早いうちに出くわす)ではないかな。 WEB記事も沢山ある。調べてみたのかな。

homura100
質問者

補足

ご回答ありがとうございます。 列指定は1つずつでよいのか、複数列分を1タイルにすることがあるのか。 一般に、プログラムを考えるとき、1つか、複数(連続か飛び飛び)か、飛び飛びか、は難しさを左右するので、意識して(設問に)説明すること。 >列指定について、1種類の数値だけを指定する方向で考えています。また、隣り合った連続した列を指定の列数ごとに分割しそれを新しくcsvファイルとして出力する(複数列分を1タイルにする)ものを考えています。 元データの画像も(質問に挙げることは)大切だが、アウトプットのfデータ例も、より重要と思はないですか。 >アウトプットのデータ例も重要であると思います。補足にて新しく画像の添付ができないため、文章で補足させて頂きます。アウトプットのデータとしては、隣り合った連続した列を指定の列数ごとに分割しそれが新しくcsvファイルとして出力されたものを考えています。 レコード全体の処理を繰り返し、配列の指定インデックスのデータに変数にカンマを加えて、変数に蓄積し、レコードが終われば、ファイルにどのように書きだすか。最後だけはカンマを添えないようにする。 あるいは1列1レコードにするのか? >レコードとは行のことでしょうか。そうであると仮定する場合、書き出されるファイルと理想形しては、元データと同じ数の行と実行時に指定した列を持つcsvファイルということになります。1行1列ごとのcsvファイルではありません。 WEB記事も沢山ある。調べてみたのかな。 >調べてみたのですが、指定した行ごとに分割するExcelマクロの記事しか見つからなかったため、質問させて頂きました。その中ではこちらが一番完成イメージに近いマクロでした。https://yu-syan.sakura.ne.jp/?p=87

関連するQ&A

  • エクセル マクロ csvファイル統合

    あるソフトを用いて指定行数に分割した15のcsvファイルをそれぞれシート別にしてエクセルファイルに取り込みたいと考えています。 マクロを用いてこのような作業を行いたいのですが何方かご教授いただけませんでしょうか?

  • エクセルマクロ、複数のCSVファイルを読み込んで一つのファイルに繋げる方法

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

  • 列数が4000を超えるcsvファイルをExcelで読み込むには?

    横に4000くらいカンマで区切られたcsvファイルがあります(各々は数値)。Excelで列数の限界は256かと思われますが、それ以上の列数のファイルを扱うことは可能でしょうか?目的は、個別にグラフデータの数値として認識させたいのです。 その他扱えるツールがあるようでしたら、そちらもお教えいただければうれしいです。プログラム等での縦横入れ替えは、この度は除外させてください。 言葉足らず、不適切な表現はお詫び・補足いたします。

  • Excelマクロで同じブックにCSVを読み込むには

    Excelの指定したシートにCSVファイルを読み込ませたいのですが 以下のVBAマクロを実行すると新しいブックが起動して 新しいブックの方にCSVファイルが読み込まれてしまうのですが これをVBAマクロを実行しているブックの指定のシート(例えばSheet3など)に 読み込ませたいのですがどのように記述すればよいのでしょうか。 よろしくお願いします(Excel2010) Sub Macro1()  ChDir "C:\test"  Workbooks.Open Filename:= "test1.csv" End Sub

  • csvファイルの読み込みができません。

    csvファイルの読み込みができません。 過去にExcelで作成したデータをcsvに変換するマクロを作ってもらいました。 (Excel表の中にマクロを登録したボタンがあって、それをクリックするとcsvファイルが作成される) そのcsvファイルをそのまま使用すると、読み込みができますが、一旦csvファイルを開いて一部データの変更をして保存すると読み込みができなくなります。 また、自動にファイル名が設定されるので、わかりやすいようにファイル名を変更しただけでも読み込みができなくなります。 csvファイルにも種類があるんでしょうか?

  • EXCELでCSVファイルの読込み

    VBA超初心者でとても困っています。 仕事でEXCELのVBAを使って 現在開いているシートの中に 1つのCSVファイルからデータを読み込むのですが CSVデータの2行目をEXCELのC2へ。 4~10行目までを、EXCELのB5~B14へ マクロを使い、ボタン一つで自動入力させたいのです・・・。 Line Input も、やり方が悪いのかうまくいきません。 ヒントとなるやり方があればぜひ教えてください。

  • Excel VBAにてCSVファイルを読みたい

    ExcelにてCSVファイルを読んで処理をしたい。 ただし、CSVファイルをExcelでopenすると遅いので、 VBAにてファイルとして読み込みで処理をしたいのですが、 皆さんは、どのように行っていますか? ※CSVファイルは、テキスト区切り→"(ダブルコーテーション)です  テキスト区切り無しであれば、1行読んで、カンマをsplitすれば良いと思いますが。。。。

  • ExcelのマクロでCSVファイルを開くと遅いのですが

    ExcelのマクロでCSVファイルを開くと遅いのですが速く開く方法はありますか? 普通にファイル-開くに比べてかなり遅いです。 下記のVBAで記述してあります。 Workbooks.Open Filename:=fname ActiveWorkbook.SaveAs Filename:=fname, FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.Close savechanges:=False

  • CSVファイルを複数のファイルに分割する方法

    CSVファイルの最初の数行を飛ばして、同じ行数ずつ分割して1.csv、2.csv・・・という風に分けたいのですが、行数が膨大で手作業でするにも時間がどのくらいかかるのか分かりません。どなたか簡単な方法を教えてください。

  • マクロでのcsv読み込みについて

    エクセルのマクロにてcsvファイル(カンマ区切り)のデータを読み込むマクロを制作しているのですが、そのcsvファイルが1行めを2行目がデータ本体ではない為カンマの数が違い、openを使って読み込みを行うとうまくいきません。何かいい方法はないでしょうが。よろしくお願いいたします。