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

CSVファイルの扱いについて

このQ&Aのポイント
  • CSVファイルを業務で扱うにあたり、皆さんはどのようにされてますか?インターネットなんかでは、とかく「テキストファイル取込みウィザードを使う」とかの方法ばかり紹介されますが、あんな小難しく面倒な方法を、みんな使われているのでしょうか?
  • 1回や2回ならともかく、何度もCSVを開くに当たっては、テキストファイル取込みウィザードをいちいち使ってたら時間がかかりすぎます。項目数の多いCSVを扱いますし。
  • 周囲にそのやり方を説明しても、七面倒臭いので受け入れられません。私はマクロができるので、もうマクロで取り込むようにしてますが。皆さんはどのようにされてますか?CSVはExcelで開いてコピペとかするようにしてますか?でもそれだと、Excelの独自解釈機能によって「0001」みたいな文字は先頭のゼロが欠損したりするし、困るんですよね。

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

エクセルでcsvファイルを開く時、に特化したお話ですね? 日々ちょこちょこ使うcsvファイルをエクセルで取り込むのであれば、 そのためのマクロを組みます。 単発で入ってくるファイルをエクセルで表示するのであれば、 必要に応じてウィザードを使います。 もしくは、テキストエディタで開きます。 csvファイルはあくまでもComma Separated Values、 項目ごとにカンマで区切られた「テキストファイル」ですから、 アプリケーション間で書き出し・取り込みなどの 互換・交換を容易にするためのフォーマットであり、 エクセルで開かなければいけないモノではありません。 ちなみに私は、フリーソフトですが   http://www.asukaze.net/soft/cassava/ これを利用させてもらっています。 それでも「csvはエクセルで開きたい」と言う方が多いのも事実ですね。 そんな人のために、エクセルで表示することを前提としてcsvファイルを作るときは 各項目を「="0001"」とするように、出力側で設定しています。 まぁ、それも八面倒臭い作業ではあるんですけどね。 「できない人」にできるようになってもらう面倒臭さに比べれば・・ ・・と、私は割り切っています。

absolute_space
質問者

お礼

有難うございます。やっぱりマクロとかが必要そうですね。ちなみに私のケースでは、CSVの用途はとかく、「Excelにそのまま展開する」ことに尽きます。ですから、テキストエディタで開いたとして、それをどうやってExcelに展開するのかということが残ります。またCSVは自分で作るのではなく、システムから自動出力されたものを利用します。

その他の回答 (2)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

単にCSVファイルと言っても、アプリケーションに依存するファイルです。 ・セル内に改行コードが含まれている場合 ・セル内にASCII文字しか含まれてない場合 ・セル内に,や"が含まれているときのエスケープ方法 などが、出力するアプリケーションによって異なります。システムから出力させるときにエクセル出力のフォーマットで出力させればよいのでは?  あくまでMicrosoftのエクセルが出力するCSVとしてなら、そのままコンテキストメニューからエクセルを選択すれば、開けるはずです。  0001が、1になってしまうのは、出力するシステムの側の問題です。エクセルから出力されるものならセルに'0001と入力されていれば、CSVも0001になっているはずです。  他の用途で使うときは、たとえばHTMLのtableに使ったりするときは、Perlで 【引用】____________ここから while (my $line = <DATA>) { $line .= <DATA> while ($line =~ tr/"// % 2 and !eof(DATA)); $line =~ s/(?:\x0D\x0A|[\x0D\x0A])?$/,/; @values = map {/^"(.*)"$/s ? scalar($_ = $1, s/""/"/g, $_) : $_} ($line =~ /("[^"]*(?:""[^"]*)*"|[^,]*),/g); # @values を処理する }  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Perlメモ( http://www.din.or.jp/~ohzaki/perl.htm#CSVwithCRLF )]より とか・・

absolute_space
質問者

お礼

システム出力時のフォーマットも、考え直した方が良さそうですね。

  • PXU10652
  • ベストアンサー率38% (777/1993)
回答No.1

「皆さんはどのようにされてますか?」  何度も使用する同じフォーマットのファイルなら、Accessで、項目名と属性(「0001」を「文字列」など)を指定して、その情報を保存しておき、次回読み込み時にもそれを利用して読み込ませます。  Excelで使うには、一旦Exportする必要がありますが、それも含めてAccessのマクロで組むのも手だと思います。

absolute_space
質問者

お礼

有難うございます。良いんですけど、マクロ等の知識がないとキツそうですよね。私は分かりますけど、知識がない一般ユーザには、ちょっと敷居が高いのかなあと・・・。

関連するQ&A