• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:16384列を超えるCSVファイルについて)

16384列を超えるCSVファイルのExcel上での表示方法とVBAマクロ作成方法

eden3616の回答

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

CSVファイルはエクセルのファイルではなく、区切り文字としてカンマ「,」が使われているテキストファイルです。 メモ帳で開いていただくとわかるのですが、次のような表記で開くと思います。 ¥イチゴ¥トチオトメ,¥米¥ササニシキ・・・ 100,200・・・ 200,500・・・   ・   ・   ・ エクセルでは、このCSVファイルを開いた際に、テキストファイルの行で区切りセルの行に分け、カンマで区切りセルの列に分けて表示します。 この際に、エクセルで取り扱える行および列数を超えると読み込めないデータとしてエラー(表示しきれない)となります。 ただのテキストデータですので、上記みたいにいきなりエクセル任せでCSVを開くのではなく、VBAからテキストファイルとして読み込んで、splitなどの分割を用いて配列へ格納し、配列に格納したデータに対してお望みの処理を行い、シートへ書き出せば可能です。 CSVファイルをテキストデータとしてVBAから開く方法は以下のサイト様を参考にしてみてください。 http://tonari-it.com/vba-csv-split-2/

Mokei01
質問者

お礼

有難うございます。なるほど!一度テキストに変換して別けるという事ですね! 凄く参考になりました。 参考のサイトも分かりやすいです。有難うございました!

関連するQ&A

  • CSVファイルの取り込みについて

    CSV取り込み方法について 教えていただきたくお願いいたします。 エクセルのマクロ・VBAの組み方について デスクトップ上の000という名前のCSVファイルを、作業しているエクセルファイルのLoadという名前のシートに貼り付けたいと思っています。 CSVファイルはエクセルで開くと1行に11列の項目が展開されています。 貼り付ける項目はこのようになります。 (CSV) →(エクセルのLoadシート) 1列目(A行)→B行へ 2列目   →C行へ 3列目   →D行へ 4列目   →E行へ 5列目   →F行へ 9列目   →G行へ 10列目  →H行へ 11列目  →I行へ (6.7.8列目は使いません) 最後にLoadのシートのA行に”=B&E”とい式を入力したいと思っています。 まだ初心者なので勉強中なのですが、仕事上急遽必要になりましたのでお願いいたします。

  • エクセルVBAでCSVを読み込んで別ファイルにまとめたいです。

    エクセルVBA初心者の者です。 マクロの記録でできたコードをいじって、 なんとか動くものができるレベルです。 Aというフォルダに20~40行程度の内容のCSVファイルが 数百個あります。開けてみないと何行あるのかわかりません。 そのAフォルダのCSVの内容をエクセルで開いて、別のエクセルファイルの一枚のシートにまとめたいのです。 最初にCSVファイル名を一枚のシートのA列に書き出すところ まではやれたのですが、それを順番に読み込んでコピペの 流れができません。 CSVファイル名読み込み 読み込んだファイル1つめCSV開く CSVの20~40行をコピー 別のエクセルファイルのシートに貼り付け 1つめCSV閉じる ↓ 読み込んだファイル2つめCSV開く 繰り返し こういうやり方じゃない方がいいのかもわかりません。 もしかして考え方も違うのでしょうか? サンプルコード教えていただけるとありがたいです。 よろしくお願いします。

  • エクセル2003でCSVファイルを開くときに列と行を入れ替える方法はありませんか

    エクセル2003を使用しています。 CSV形式のファイルがあるのですが、エクセルで開くと列が256を越えているためにエラーがでて、全てが表示されません。行は256を越えていないので、エクセルで開くときに列と行を入れ替えたいのですが、何か方法はないでしょうか? Windows2000を使用しているためエクセル2007は使えません。

  • CSVファイルの特定列だけを呼び出し

    はじめまして。VBA初心者です。 質問させてください。 横に十列、縦に1万レコードのcsvデータがあり、このうちの2列分だけをエクセルシートに取り出すマクロが必要になりました。 外部データ呼び出し後、列を削除、というのを作ってみましたが、僕の力量不足にためか、改変ポイントがよくわかりませんでした。 opentextを使ってarrayで読み込む、というのもやってみましたが、結構時間がかかってスムーズにはいきませんでした。 ネットでさがしているうちに、読み込む列が少ないならcsvから特定の列をコピーして、それを新しいブックに貼り付け、すればいいみたいな記述をみたのですが、参考になるコードが見つかりませんでした。 そういうことは可能なんでしょうか?また、大量のデータを読み込む時に一番早い方法はどんなものでしょうか?

  • 【VBA・マクロ】csvファイルの操作方法

    実験データ(csvファイル)をマクロを使用して編集・操作したいのですが、 データ量が多すぎ(65536行を超えている)て 「すべて読み込めませんでした」と出てしまいます。 そのためデータを一度ワードパッドで開き、必要なデータのみを抽出して 順番にエクセルシート(sheet1)に貼り付けたいと思っています。 多少はマクロを勉強して簡単な操作はできるのですが、 ワードパッドへの操作方法がわかりません。 よろしくお願いいたします。 使用エクセルバージョン:エクセル2000      1列目 2列目 3列目 4列目 1行目  A   C   良品   E 2行目  B   D  不良品   F ※良品となっている行のみのデータをエクセルへ貼り付けたいです。

  • 複数CSVファイルからデータ抽出

    CSVファイルのA列(行は問いません)の文字が転記シートのA列(行は問いません)と一致していたら、転記シートのA列が一致した行の空白に、左から順にCSVファイルのA列が一致した行のF列の値を書き込む。CSVファイルの1行A列を転記シートのF列の値を書き込んだ列の1行目に書き込む。 できれば、書き込んだ値はCSVファイルから消したいです。 コピペでやっていたのですが、ずれていてどうしようもなくなりました。 CSVファイル一つ当たり、4000行ほどあり、ファイルは200弱あります。 プログラムを組んでくださると、ありがたいのですが。 質問というよりお願いになってしまいますが、よろしくお願いします。

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

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

  • マクロ CSVファイル取込 最終行、最終列の取得

    マクロでCSVファイルを取込むプログラムを作成しております。 最終行を取得するソースまではできたのですが、最終列を取得する処理ができておりません。 教えて頂けないでしょうか。 処理概要 (1)ボタンを押したら、Sheet2にCSVファイルがインポートされる (2)Sheet2に出力されたA2行~A8行とA2行~A8行の最終列までをSheet1のD4行~D10行、D4行~D10行の列にコピー  (3)Sheet2に出力されたA9行目はコピーしない (4)Sheet2に出力されたA10行以降とA10行以降の最終列までをSheet1のA13行以降の最終列までにコピー 現在のソースは(2)、(4)の最終列を取得するソース以外はできています。 (2)、(4)の最終列を取得し、コピーする方法を教えて下さい。 現在のソースです。 Sub READ_TextFile() Dim LoadFileName As String Dim LR As Long '選んだcsvファイルをSheet1に読み込む LoadFileName = Application.GetOpenFilename("CSVファイル(*.csv),*.csv", 1, "読み込むcsvファイルを選んで下さい", False) If LoadFileName = "False" Then Exit Sub Workbooks.Open LoadFileName Cells.Copy ThisWorkbook.Sheets("Sheet2").Range("A1") ActiveWorkbook.Close False 'Sheet2のA2:A8をSheet1のD4を先頭セルとする範囲にCopy Worksheets("Sheet2").Range("A2:A8").Copy Worksheets("Sheet1").Range("D4") 'Sheet2のA列のデータのある最終行を取得しLRという変数に入れる LR = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row 'Sheet2のA10からA列の最終行までをSheet1のA13を先頭セルとする範囲にCopy Worksheets("Sheet2").Range("A10:A" & LR).Copy Worksheets("Sheet1").Range("A13") End Sub

  • 複数のcsvファイルを1つのEXCELファイルにマージするVBAを教えてください

    csvファイル数は700~1000個程度でひとつのフォルダに格納されています。 このファイルをEXCEL形式で開くと、1行目にフィールド名(A~Z列で固定)、2行目以降にデータが入っています。行数はファイルにより1~100行程度で変動します。 このファイルを1つのエクセルファイルの同一シートに結合(マージ)するVBAがほしいです。 ここで、(できればですが)EXCELにマージするにあたり、1行目のみフィールドの値、2行目以降にそれぞれのcsvの2行目以降データの値を入れていくようにしたいです。つまり、フィールド名の行が何行も出てくるのを避けたいです。 申し訳ございませんが、ご指導いただけたら幸いです。よろしくお願いします。

  • とても大きなCSVファイルをEXCELで見たい。

    今、手元にとても大きなサイズのCSVファイルがあります。 そのファイルは、行は1800行なのですが、列は256行以上あり何列あるかわかりません。 EXECL2000で開くと全ては開けなかったと表示されてしまいます。 なんとか、EXCELでこのファイルを見ることはできないでしょうか? または、CSVファイルの列を分割できるようなソフトを ご存知ないでしょうか? よろしくお願いします。