• 締切済み

CSVファイルをExcelで読み込むと

CSVファイル中の項目 "01-03"などが、Excelでは 勝手に 1月3日などに変換されてしまいます。 もちろん、拡張子を.txtに書き換えて、毎回フィールドを 文字列属性にして読み込んでやればいいのでしょうが、 なにぶん量が多いので、毎回毎回こんな操作をするのは めんどくさいのです。 CSVファイルのままで、項目を勝手に変換させないで読み込む方法はありませんか??

  • nonoz
  • お礼率66% (4/6)

みんなの回答

  • magudon
  • ベストアンサー率57% (4/7)
回答No.6

>どこかで、「""で囲むと、文字列として読み込む」と >いう設定ができるのでしょうか??? "'03-09" などと、'の文字を入れると文字列として読んでくれます。

  • magudon
  • ベストアンサー率57% (4/7)
回答No.5

実は、私も同じことでどうしようかと考え、VBAで 解決しました。 まず、csvファイルと同じ内容のxlsファイルを 作成し、セルの書式設定で自分の好きな形にします。 そして下記のマクロを実行すればよいはずです。 下記のtestというところを適当に書き換えてください。 Sub test() ' このファイルを、CSV形式で、このファイルと同じディレクトリに保存 Dim CurrentName As String CurrentName = ThisWorkbook.Name ThisWorkbook.Sheets("test").SaveAs _ Filename:=ThisWorkbook.Path & "\licindb.csv", FileFormat:=xlCSV Application.DisplayAlerts = False '確認せずに上書き保存 ThisWorkbook.SaveAs Filename:=CurrentName, FileFormat:=xlNormal Application.DisplayAlerts = True End Sub

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.4

やっぱりややこしい気がするんですが、 1:WORDなどで該当のCSVファイルを読み込み、以下の方法ですべて置換する   検索する文字:([0-9][0-9]-[0-9][0-9])   置換後の文字:$$\1   オプション:ワイルドカードを使用する  ※01-01 → $$01-01 ってな感じで置換します。 2:同名で保存し、EXCELで同CSVを読み込む 3:EXCEL上で置換(すべて)   検索する文字:$$   置換後の文字:' (←半角シングルクォーテーション) と操作すると、ちゃんと読み込みできます。

nonoz
質問者

お礼

うーん。 それだと .txtに書き換えて..... と大差ない手間のように思えてしまいます。 Excelで素直に読み込む方法はないんでしょうか? 「ある」か「ない」かで、考え方が違ってきます。 私はマイクロソフト製品には詳しくないので、 もし知らないだけで、素直に読み込む方法が 存在するならば、「できないから迂回方法を考える」 ということは無駄です。逆に存在しないならば、 Excelを使わない方法を考えるなりの根本的に 違うことを考えなけりゃなりません。 CSVファイルくらいは勝手な変更せずに そのまんま読み込んで欲しいと思うのですが。 あ、アドバイスには感謝してます。 ありがとうございます。

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.3

失礼しました、質問をしっかり把握してなかったです。 でも、テキストエディタ等で目的の位置を探して何らかの処理をするほうが面倒な気がするんですが・・・ あとは更に面倒でしょうけど、VBAを使って直接フィルを読みこむような仕組みを作るとか。

nonoz
質問者

お礼

いやいや、私にとっては、Excelを使うよりも、 perlでスクリプトを書くほうが遙かに楽ですから。 でも作業者向けに Excelにしないといけないって 場面もでてくるので、Excelで読み込みなのです。 VBAは書いたことないのですが、 (C++は好きだけど、BASIC系は嫌い) それで読み込むような仕組みを作ることは 可能なのですか?? ならばそっちのほうがいいです。 嫌いだなんて言っている場合ではないです。 ナミダをのんでVBAに取り組みますわ。

  • mnabe
  • ベストアンサー率33% (427/1283)
回答No.2

 余り賢い方法ではないのですが、 01-03の様なデータを、" 01-03"の様に ダブルコーテーションでくくって、文字列の最初か 最後にスペースを入れれば、Excel君は、文字列だと把握 してくれます。

nonoz
質問者

お礼

おぉ!スペースを入れるとは!! 思いつきませんでした。それは。 でも、そうすると、今度はいろいろなところで、 空白を削除する処理をせねばならなくなる... まぁ、人間は思いっきり楽になりますね。 一度プログラム(スクリプトとか含む)組んでしまえば。 次善の策として考慮させてもらいます。 ありがとうございました。

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.1

CSVファイルのうちにそのフィールドを " " で囲むという手があります。ま、あまり現実的じゃないですけど。 CSVファイルを開くときどのように開いていますか?先にExcelを起動したあとにファイルメニューの開くから開くとウィザードが起動するんですが、拡張子CSVがExcelに関連付けされていると勝手に開いちゃいますので、拡張子をTXTなどに変えてから開いてみてください。 ウィザードでは列ごとにデータの内容を指定できますので、日付っぽいデータなんだけど全然別ってことなら文字列として読み込ませればそのままのデータが保存されます。

nonoz
質問者

お礼

回答ありがとうございます。 しかし、私が聞きたかったのは、ファイル名を「xxxx.txt」に書き換えて、ウィザードで文字列属性に指定して、、、、というやり方がめんどくさいので、なんとかなりませんでしょうか???という趣旨なのです。「なんとか手抜きができるようになりませんか?」という都合のいい質問なのです。 ちなみに、Excel97では、フィールドを ""で囲んでやっても、"03-05"は、「3月5日」に変換されてしまいます。 どこかで、「""で囲むと、文字列として読み込む」という設定ができるのでしょうか??? すみません、基本的に Windowsを含むマイクロソフト製品には、ど素人です。

関連するQ&A

  • Excel2000でCSVの読み込み時書式指定

    .txtを読み込むと最初に区切り指定やフィールドの書式指定が 表示されますが、.csvでも表示させることはできますでしょうか? 「123456789012345」といったものが「2E+14」とか勝手に変換 されるので、いちいち拡張子を.txtにして、全フィールド「文字列」 に指定して読み込ませているので非常に効率が悪いのです。 もしくは読み込み時のデフォルト書式を「文字列」にするという 方法はありますでしょうか?

  • ExcelファイルをCSV 形式で保存するには?

    ExcelファイルをCSV 形式 (Windows、カンマ区切り) (*.csv)にして書類を提出するように言われたのですが、その方法について教えてください。 データの内容は会社の詳細で、1社につき100項目のデータがあり、それが50社あります。その場合、1社目のデータをA列に、2社目のデータをB列にというように入力すればよいのでしょうか? Excel の [名前を付けて保存] ([ファイル] メニュー) を使って、CSV (カンマ区切り) (*.csv)ファイルで保存すると、各項目がカンマで区切られるのでしょうか? 1レコード目と2レコード目はどういった区切りになるのでしょうか? またファイル形式はCSV 形式でと言うことですが、提出するファイル名の拡張子を.txtとしないといけないのですが、それはどうすればいいのでしょうか?

  • CSVとtxtからCSVファイルをつくるには

    元ファイル1.CSVと 元ファイル2.txtから 新しいCSVをつくりたいのです。 元ファイル2.txtは元ファイル3.txt、元ファイル4.txtといっぱいあります。 こちらは改行ありの文章です。 元ファイル1.CSVの第二フィールドに、元ファイル2.txtを差し込みたいのです。 今までは元ファイル2.txtを開いてコピーして、エクセル上で元ファイル1.CSVにペーストして、 CSVで保存していました。 しかし、このやり方だとtxtファイルの数が増えてくると、だんだんやりきれなくなってきました。 なにかうまい方法はないでしょうか?

  • csv ファイルのデータを文字列として開く

    csv ファイルを開いた時に、最初から 全てのセルの 「セルの書式設定 > 分類」を「文字列」にすることは出来ますか? 一度、拡張子を txt に変えて 「テキスト ファイル ウィザード」 「列のデータ形式」を文字列にするのは知っているのですが、 ・拡張子を変える ・エクセルを開く ・ファイルを選ぶ ・全ての列を選択 ・文字列にする と非常に面倒なので csv ファイルのままでファイルを開いたら 最初から文字列にする方法を探してます。 お願いします。

  • ExcelでのCSVファイルの編集について、

    ExcelでのCSVファイルの編集について、 オートフィルタ機能を使いたいため、 ExcelでCSVファイルの編集しようとしているのですが、ちょっと苦戦しています。。。 私が試してみたこと 1.もとのCSVファイルの拡張子を○○.csv → ○○.txtに変更。   ↓ 2.Excelの「開く」からその○○.txtを読み込む。   ↓ 3.テキストファイルウィザードに従い、   1「カンマやタブなどの区切り文字によって~ 」にチェック   2「区切り文字」→ カンマ、「文字列の引用符」 → "   3「列のデータ形式」 → 文字列 ※090などの数字を、90と先頭の0を消されないように 上記のような手順でCSVファイルを取り込み、編集を終え、 保存する時は   「○○.txtにはテキスト(タブ区切り)と互換性のない機能が含まれている可能性があります。    この形式でブックを保存しますか?」 → このまま保存するため「はい」を選択 これでバッチリOK!…かと思われたのですが、 元の編集前の○○.txt は"名前","ヨミ","電話番号1", …… ""とカンマ区切りであったのが、 編集後の○○.txtは名前 ヨミ 電話番号1  …… タブ区切り(?) となってしまっています。 (CSVファイルとしてはタブ区切りでも問題ないのでしょうが…) どうすれば元のカンマ区切りの形式のまま保存できますでしょうか。 アドバイスよろしくお願い致します。

  • CSVをExcelに読み込む時の前ゼロについて

    CSVファイルをExccelで読み込む方法について教えてください。 前ゼロを消さずにCSVファイルをExcelで読み込む場合に、下記の方法でできると書かれていました。 疑問なのは、なぜ1番でCSVの拡張子をtxtに変えているかです。 CSVをTXTに変える意味はあるんでしょうか? http://q.hatena.ne.jp/1102427939#a4 1.読み込むCSVファイルの拡張子を「.txt」に変更する 2.エクセルから「開く」で読み込むリストを選択して開く 3.「テキストファイルウィザード」というのが現れるので、「元のデータの形式」を「カンマやタブなどの・・・」を選択して「次へ」ボタン押下 4.「区切り文字」は「カンマ」のみをチェックして「次へ」ボタン押下 5.「区切った後のデータ形式を選択してください」とでるので、数字のみの項目を反転させて「文字列」を選択して「完了」ボタン押下 これでいけるはずです。 質問者:nyanta 2004-12-08 07

  • csvファイルをエクセルで開と拡張子が変わる

    ダウンロードしたcsvファイルを『 プログラムで開く 』を選択し、Excelで開くと、 ファイルの拡張子が[ .csv.txt ]となってしまい、カンマで区切りられた文字が 1つのセルにたくさん並んでいる状態になってしまいます。 ダウンロードしたファイルを1度保存してから、保存したファイルを直接開くと 拡張子が[ .csv ]のまま開けます。1つのセルに1項目が入力された状態で、 綺麗にエクセルに表示できます。 最近会社のPCを変えたのですが、以前はプログラムから開く を選択しても [ .csv ]のままで、綺麗に表示ができました。 プログラムから開く を選択しても、[ .csv.txt ] とならないようにするには どうしたらよろしいでしょうか。 ※Exce2007 ブラウザはFire Foxを使用しています。(Fire Fox以外で表示できないサイトですなので・・)

  • Excelでcsvのフィールドが減る

    csvファイルをExcel2000のテキストファイルウィザードで開き、 再びcsvで保存した場合に、フィールド数(カンマの数)が減る という現象が起こりました。 再保存する際、空白セルが無視されるのかと考えましたが、 同ファイル内に、空白であってもフィールドが保存されている レコードもあります。 OSはWin2000 csvはテキストファイルウィザードで開けない為、 拡張子を一旦 txt に変えてから開いています。 原因、解決方法、何かヒントになりそうな事なら何でもよいので アドバイスよろしくお願いします。

  • CSVファイルをテーブルにインポートする

    1行目が項目名のCSVファイルをテーブルにインポートするため Private Sub CSVインポート_Click() DoCmd.TransferText acImportDelim, , "ブランド", "J:\ブランド.TXT" MsgBox ("CSVファイルインポート完了") End Sub を実行すると、f1,f2のフィールドがありませんとメッセージがあり F1,F2 のフィールドを追加し再度実行するとデータは f1,f2に入り 項目名もデータとして入っています。 1行目は項目名と宣言する設定はありますか。 よろしくお願いいたします。

  • エクセルをCSVに変換時に不具合が出てしまう。

    エクセル2007を使用している者です。 エクセルファイルをCSV変換時に出る 不具合がどうしても改善できず困っております。 操作内容は以下の通りです。 エクセルにて列ごとに違う項目で A~Oまでの列にそれぞれ5行異なるデータを入れ、 これをCSVに変換した後のファイルを保存して 内容を確認してみますと、 何と、驚くことに入れたはずのない行が増えており また入れたはずのないデータが入っており、 さらに列の順番も少し変化し、 また元データと異なる列も作成され、そこには 全く入力していないデータが反映しています。 データ内容を見ますと、 以前、異なる階層のフィルに作成した CSVデータの内容からも読み込んでいるような感じです。 つまり、エクセルの元ファイルデータに加え 以前作成した全く関係ないCSVフィルからもデータを取り込み これを複合されたようなCSVデータができています。 PCを何度も再起動しても改善されないため office2007をまるごと入れ直してみますが、 やはり結果は変わらないです。 また、読み込んでしまう関係ないCSVファイルを 別の場所に移動してみても結果は同じです。 エクセルを開いて左上にあるボタンから表示される 【最近使用したドキュメント】の履歴も すべて削除しています。 尚、エクセルファイルに数式等は一切いれていません。 また、CSVに変換後のファイルの拡張子もCSVとなっています。 原因を特定することができなくて困っています。 原因や改善方法をご存知の方がいらっしゃいましたら どうかお知恵をお借りできますよう アドバイスを宜しくお願いいたします。

専門家に質問してみよう