ExcelのCSVファイル読み込み時に表示が######となる問題の解決方法

このQ&Aのポイント
  • CSVファイルをExcel(2010)で読み込むと、A1セルに表示が######となる問題が発生します。セルの幅を調整すれば日時が表示されますが、秒は表示されません。しかし、ユーザの操作を必要とせずにA1の表示をC1と同じ状態にする方法があります。
  • CSVファイルをExcel(2010)で読み込む際に、A1セルに表示が######となる問題が起きます。セルの幅を調整すれば日時は表示されますが、秒は表示されません。しかし、ユーザの操作を必要とせずにA1の表示をC1と同じ状態にする方法があります。
  • Excel(2010)でCSVファイルを読み込むと、A1セルの表示が######となる問題が発生します。セルの幅を調整すれば日時は表示されますが、秒は表示されません。しかし、ユーザの操作を必要とせずにA1の表示をC1と同じ状態にする方法があります。
回答を見る
  • ベストアンサー

Excelの表示設定

2014/06/19 12:34:56 といった日時が書きこまれたCSVファイルをExcel(2010)で読み込んだとき (csvファイルはexcelに関連付け状態でファイルをダブルクリックして読み込み) A1セルに読み込まれ 表示が###### となってしまいます(添付画像参照) ※ 画像は比較しやすいように 同じデータを3つ並べているだけでj実際は1つです    A1  デフォルト    B1  セル幅変更    C1  セル幅およびセル書式変更 自分でA1セルの幅を調整すれば日時(B1)になりますが秒が表示されません これももちろんセルの表示方法を設定すれば秒まで表示はできます(C1) 自分としてはCSVファイルである以上無理だと思っていますが ユーザの操作を必要とせずA1の表示をC1と同じ状態にもっていくことは可能なのでしょうか? 可能であればその方法を教えてください

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>>相手方に「送り手側で作成した読み込みプログラム」で開くようにお願い >これは Excel で開くための読み込みプログラムではなくてそのCSVデータを表示するための専用のビュアープログラムを作成しそのソフトで開いてもらったということでしょうか? > >専用ビュアー作ったという意味であればいいのですが、もしExcelで開くための橋渡し的なソフトを作成したというのであればぜひその方法を知りたいところです いろいろ作りましたが、一番分かりやすかった(相手方にとって)のは、読み込み用のExcel Bookを作って、その中にモジュール(マクロ、Excel VBA)を書いて、マクロを起動すると、ファイル指定、読み込み、シートのフォーマットを行うツールでした。相手方に渡していました。 1.マクロを起動  最初のシートにコマンドボタンを配置し、ボタンを押すとマクロ開始。     2.ファイル指定、  GetOpenFilenameメソッドを使ってファイルを指定してもらう。送ったファイルは相手方のパソコン内にあるためです。フォルダーの指定ですね。指定してもらったブック名はチェックしていました。OKならファイルを開いて次に行きます。合わせて、データを読み込んで作成するブック名、保存フォルダー名を指定してもらいます。ほとんど規定値+年月日.xlsのようなブック名を自動作成するようにしていました。 3.読み込み  基本的には、拡張子が「txt」の固定長や「CSV」のプレーンテキストでした。VBAのLine Input文で読んで「カンマ」やレイアウト(「4」)を参考にして区切ってセルに展開(別ブックです。)します。その当時はSplit関数もなかったですね。この段階まではどの相手方でも同じです。 4.シートのフォーマットを行う  ここからが相手方によって少し異なる処理になりますが、やってることは、列の書式設定とAutoFitメソッドを使った列幅の調整です。  書式設定は「最初のシート」にプレーンテキストのフォーマット(項目の桁数や属性、書式設定など)を書いておいてモジュールはそれを参照する形式した。結局フォーマットを個別に定義しますが、モジュールは一つでした。また、相手方には極力、同じようなフォーマットを使うようお願いしました。    細かな話をすると、日付として認識できる項目(住所の1-2-3など)などはExcelが自動変換するので、「4」の処理前に「3」で対応していました。      できたツールの運用は、相手方に送るファイルのフォーマット登録くらいでした。こちらが受け取るデータについても同じツールを使うようにしていました。   ーーーーーーーーーーーーーーーーーーーーーーー >ダブルクリックで開こうが Excel上からCSVを開こうが 現象としての違いはありません。回答者さんの環境では挙動が違った(バージョンの違い?)ということなのでしょうか? ダブルクリックで開く  ・・・こちらは何もできません。Excelの意のままです。 Excel上からCSVを開く  ・・・「CSVを開く」という行為をマクロの開始とすれば、何でもできます。例えば、そのブックに「CSVを開く」というボタンを置いておき、ファイルのフルパスを書いておくくらいでユーザーはそのボタンを押すだけで目的のフォーマットが手に入ります。上記1~5を行うわけですが、そのブックに読み込むわけで、かなり特化したツールになるのでシートの整形部分は数行かもしれません。まぁ、ファイルを読む部分を入れればまだ増えるでしょう。    列幅の自動調整なら一行でしょう。(例えば、Columns("A:Z").AutoFit)、  秒まで表示なら(Columns("C:C").NumberFormatLocal = "yyyy/m/d h:mm:ss")   主導権がExcelなのか使い手なのかで全然違うと考えています。 ご参考に。  

koi1234
質問者

お礼

まだマクロの使い方などを理解してない部分があるので Auto_Open 等と合わせて再度調査・確認してみたいと思います Bookにマクロ登録して共通モジュールにすれば いいらしいことはなんとなくわかりましたが (場合によっては共通モジュールでなくてもいいのかも) 何も開いていない素のExcelだけでマクロ共通モジュール定義なんかできるのかな と悩んでいました    少なくても今回の内容でいえば全て別のBookからの    マクロ起動としての対処になっているように感じました >読み込み用のExcel Bookを作って、その中にモジュール(マクロ、Excel VBA) >を書いて、マクロを起動 そういった意味(EXcel VBA)のソフトでしたか Excel以外のプログラムでそういった操作を行ったといった意味かと勘違いしました 確かにこの方法であればマクロも自由に組めると思うので ある程度の融通は効くんでしょうね ダブルクリックでは無理でExcel上からなら~~ というのも理解できます 拡張子 独自形式に変えて 専用BOOK経由でないと見れないよ(伏字になったりするよ) の方式がいいか 素直に自分で成型する方式がいいか といった 2択で相手に選ばせた方がいいかもしれませんね もう少し調べてみますが  実装の方向性が広がりました 回答ありがとうございました

その他の回答 (1)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

 CSVファイルをダブルクリックして開いたときに、仕様とは別の「ある状態」に自動的に変更することになりますね。かつ、それを望まない人もいるはずです。大変そうです。  質問者様の「自分としてはCSVファイルである以上無理だと思っていますが」は正にその通りだと思います。   ・マクロで「Auto_Open」を使って・・・などと悪巧み(?)をしても、ほとんどはその処理を望まないはずなので混乱するだけでしょうか。 ・CSVファイルの関連付けを変更しても全てのCSVファイルを対象にはできないですね。 ・エクスプローラーCSVファイルを右クリックして、「プログラムから開く・・・」。特別なプログラムを用意しておけばできそうですが、ダブルクリックではないし、「そこまでやる?」という感じです。 ・後は、Microsoftさんの仕様変更に期待。どんな仕様という問題はあります。      実は私もこのような経験があって、相手にCSVファイルを送ったら、「住所が日付になっている」とか「部門コードが数字になった」、「数字が####になっている」などいろいろ指摘がありました。いずれもCSVファイルをエクスプローラーからダブルクリックで開いたパターンです。  送り手としては、対応として、文字列にしたい場合は「" "」で囲ったりしました。しかし、何十万件も送るような場合は、相手方に「送り手側で作成した読み込みプログラム」で開くようにお願いしました。データ数が少なければデータ項目のパターン数も少ないので、検証して問題がなけれがばダブルクリックで開いてもらいました。  また、取引先から受け取る場合もあるわけで、少なくともその取引先からのデータに問題ないと判断するまではExcel側から開いたり、簡易なプログラムで開いていました。昔は拡張子「CSV」を「txt」に変えないとウイザードが使えない時があったと記憶しています。    社内限りのデータについては、「CSVファイルはダブルクリックして開いてはいけない」と教えています。質問者様の事例も開いてはいけない事例の一つとしています。ちょっと見るだけは別だよとはいっています。 解答というより感想になってしまいました。 何か解決策があるといいですね。 ご参考に。

koi1234
質問者

お礼

ちょっと分からないところがありますのでもし回答できる内容であれば教えてください >相手方に「送り手側で作成した読み込みプログラム」で開くようにお願い これは Excel で開くための読み込みプログラムではなくて そのCSVデータを表示するための専用のビュアープログラムを作成し そのソフトで開いてもらったということでしょうか? 専用ビュアー作ったという意味であればいいのですが もしExcelで開くための橋渡し的なソフトを作成したというのであれば ぜひその方法を知りたいところです >CSVファイルの関連付けを変更しても全てのCSVファイルを対象にはできない 今回 自作プログラムで特定のログを作成するのですが そのログをExcelで見たいという話があり 自作プログラム上から Excelの標準データフォーマットのファイルを作成するのはいろいろな面で無理があるので (探してもいませんがExcelのデータフォーマット仕様なんか公開されてないですよね) Excelで読み込み可能な CSV ファイルへの変換して吐き出すことを考えています ユーザ側でそのデータを使ってExcelによりデータのグラフ化などの   加工を行いたいということのようです   (Excel機能を自作プログラムに持たせるのはなおさら無理がある) ですので場合によっては全く独自の拡張子ファイルを作成して 新たに関連付けを追加する といったことも不可能ではありません >マクロで「Auto_Open」を使って そういったマクロもあるんですね  知りませんでした うまく作成すれば使えるかもしれないとは感じましたのでもう少し調べてみます    CSVでマクロ動かすこと自体できない or オペレータ操作が必要になる    と思ってたんでどんなファイルでもオープンの際に動くんであれば    ファイル形式チェックなどしたうえで処理動くように考えれば    何とかなるかもしれません 正直な話 Excelはほとんど使っていないのでかなりの初心者級です 今回久しぶりに触ったところ昔のバージョンでは CSVファイル読み込むときに カンマ区切りとか指定しながら読めた記憶があるのですが(2000か2003使ってた時) 現在2010で操作するとそれができなくなっている? 用です   リボンのメニューとしてファイル開いた後に設定できるところは見つけてますが   昔はファイル開く段階でできてた記憶が     仮に旧バージョンでそういった形式で開けば対処可能だとしても     今の段階で旧Office用意してくださいってわけにもいきませんし >いずれもCSVファイルをエクスプローラーからダブルクリックで開いたパターン 簡単な手順としてダブルクリックで開くと書きましたが実際こちらでは ダブルクリックで開こうが Excel上からCSVを開こうが 現象としての違いはありません 回答者さんの環境では挙動が違った(バージョンの違い?)ということなのでしょうか? あくまでこちらのスタンスとしてはCSVファイルである以上無理なので 必要ならユーザ側でファイル変換して形式変えたファイルで操作してほしい といった方向で話はしていますが   どうせExcelで何らかの操作してデータ加工するんだから   ファイル変換ぐらい簡単だろ(その際幅も勝手に設定しとけ) と思っています 自分のExcelに対しての知識不足も絡んでおり もし何らかの方法で比較的簡単に対処できるのであれば何か方法がないかな と思っているところです 書き込みありがとうございました

関連するQ&A

  • エクセルで30:15.08を「30」「15」「08」にしたいけど「30」「15」「8」になる

    マラソンなどのタイムを編集しています。 計測終了後にテキストファイル上で「30:15.80」(30分15秒80)となっているものをエクセル上で、 A1のセルに「30」 B1のセルに「15」 C1のセルに「80」 というように表示したいのですが、何もしない状態だとC1のセルが「8」とだけしか表示されません。 そこで、書式→セル→ユーザー定義→種類で表示形式を「00」に変更すると「08」になってしまいタイムが変わってしまいます。本来は「80」となってほしいのです。 このような場合はどのように設定すればいいのでしょうか? ご教授お願い致します。

  • エクセルで、他のエクセルのデータを表示

    エクセルのファイルが2つあり、AとBとします。 AファイルのA1セルに、BファイルのA1セルの情報を表示させたいのですが、 AファイルのA1セル='C:\フルパス\[ファイル名]Sheet1'!$A$1 と表示させる事で表示できます。 ここで、Bファイルは定期的に差し替えたいのですが、 上書きしたり、Bファイル削除→新しいBファイルを配置すると AファイルのA1セルは"0"と表示されてしまいます。 Bファイルを新しくしても、そのファイルのA1セルの情報を AファイルのA1セルに表示させる方法はあるのでしょうか。 Bファイルの配置とファイル名は変えていません。

  • エクセルでのタイム表示形式(再投稿) 

    質問の仕方が下手なので少し整理しました。どのように書くのがベストか分かりませんがどうにか解決したいので宜しくお願い致します。 マラソンなどのタイムを編集しています。 計測終了後にテキストファイル上で「30:15.80」(30分15秒80)となっているものをエクセル上で、 A1のセルに「30」 B1のセルに「15」 C1のセルに「80」 というようにセルごとに区切って表示したいのですが、表示設定を何もしない状態だとC1のセルが「8」とだけしか表示されません。 そこで、書式→セル→ユーザー定義→種類で表示形式を「00」に変更すると「08」になってしまいタイムが変わってしまいます。 この他にもたくさんあるタイムによってはコンマ以後の部分が「.08」の場合があります。 この場合、C3には「08」と表示したいです。 このようにコンマ以後の部分が「.08」や「.80」の場合どちらでもC3のセルに「08」や「80」というように2桁で表示したいです。 このような場合はどのように設定すればいいのでしょうか?ご教授お願い致します。

  • 【Microsoft Excel】 .csv 以外のCSVファイルをExcelで開きたい!

    .csv 以外のCSVファイルをExcelで開きたいのですがどうしたらよいでしょうか? abcd.csvというExcelで問題なく開けるCSVファイルがあるとします。 これの拡張子を.xxx(又はその他、独自設定の拡張子)に変更して、Excelで開けるようにしようと思ったのです。 フォルダオプション>ファイルタイプ>新規(ボタン)」で「新しい拡張子の作成」ダイアログが開き、そこで ・ファイルの拡張子=.xxx ・関連付けられているファイル タイプ=Microsoft Excel CSV ファイル と設定して、abcd.xxxをダブルクリックでExcelが起動&ファイルオープンするまではいったのです。(アイコンも.csvファイルといっしょになりました。) しかし、 aaa,bbb ccc,ddd という内容のファイルが セルA1=aaa,bbb セルA2=ccc,ddd となり、csvファイルとして認識してくれていないみたいなのです。 ちなみに、元の.csvの場合にはちゃんと セルA1=aaa セルB1=bbb セルA2=ccc セルB2=ddd とExcelは表示してくれます。 どうにか上手い方法は無いものでしょうか! よろしくお願いいたします。

  • エクセル 数値00の表示の仕方 EXCEL

    こんにちは。 教えてください。 EXCELにて経度緯度を下のように管理しています。 セルA1には度 24 セルB1には分 01 セルC1には秒 00 セルB1の01は表示形式のユーザー設定で 0# でできたのですが、 このようにした場合、0は 00 と表示してくれません。 教えてほしいのは、0を00と表示する仕方です。 この後の作業で、セルD1に度&分&秒として240100としたいのです。 お手数ですがよろしくご教授ください。

  • エクセルとCSVの改行

    エクセルの表示でセル内に0x0Dを表示したいです。 データtest.csvを a1,b1 (0x0D) b2,c1 としましたが、エクセルの表示は a1 | b1 b2 | c1 となってしまいました。 a1 | b1 ■ b2 | c1 このように表示させるには、エクセルの方でどう操作すればよいですか? a1 | b1 | c1   | b2 | という表示でもよいです。

  • エクセルの表示について

    1行目:セルA1+セルB1= C1 2行目:セルA2+セルB2= C2  ・  ・  ・ という計算式を、50行作成します。 C列に、(=A1+B1)という計算式を入れて、1行目のC1とドラグ&ドロップし、50行目まで計算式を入力するとき、 B列に数字が入力されていないときに、計算式の入った C列にも何も表示されないようにしたいんです。 今の状態だと、A列に数字が入っていると、自動的にC列にも数字が入ってしまうので困っています。 当方はエクセル初心者なので、できれば、マクロなど複雑な方法を用いず、解決したいのですが・・・ どなたか御存知の方、アドバイスお願いします。

  • power autmateでエクセル書式設定の方法

    power automate desktopでxlsxファイルの書式設定がうまくいかず困っています。ご教示いただければ幸いです。 処理の流れとしては ①WEBからcsvファイルをダウンロード(ファイル名は毎回変わる) ②エクセルを起動 ③DLしたcsvファイルを開く ④csvファイルをaaa.xlsxファイルとして保存(エクセルは閉じない) ⑤aaa.xlsxのA列が指数表記になっているのでセルの書式設定で表示形式を「数値」にする 以上ですが、①~④までは出来ています。 また⑤においては「A1~A最終行セルの選択」という処理もできています。 数値表示に出来ればよいので、セル単体ではなくA列全体を選択して変更する方法でも良いです。 VBScriptの実行で対応可能かと思うのですがうまくいきません。 やり方をご存じの方、どうぞよろしくお願いいたします。

  • エクセル2000で算式結果を自動表示させる方法

    エクセル2000を使ってます。 入力例として以下の計算式(単純な足し算)があるとします。 A1セル【5】   B1セル 【5】 C1セル 【=A1+B1】 表示は【10】 A2セル【6】   B2セル 【5】 C2セル 【=A2+B2】 表示は【11】 A3セル【?】   B3セル 【?】 C3セル【=A3+B3】 表示は【??】 ここで、私はA3、B3に数値を入力してC2セルをC3セルにドラッグして C3セルの計算結果を表示させています。 ただ、友人からもらったエクセルではC3には何も表示が無く、 計算式も入っていないにもかかわらず、A3、B3に数値を入力 したと同時にC3の計算結果が表示されます。 入力だけで自動表示させる方法を教えていただけますか。

  • CSVからエクセルへの取り込み

    エクセル・マクロ初心者です。 CSVファイルの一部分を、エクセルで読み込みたいのですが、 マクロでの作成は可能でしょうか。 (例) ・CSVファイル(読み込み側)  ABCDE 1 2 3 4 5 ・EXCELファイル(書き込み側)  ABCDE 1 2 3 4 5 ・CSV側は、複数のファイルがあります。 ・EXCEL側は、1つのシートにCSVのデータを書き込みます。 ・CSVファイルAの1B、2B、3B、4B、5Bを読み込み、EXCELファイルの、1A、1B、1C、1D、1Eに書き込みます。 ・CSVファイルBの1B、2B、3B、4B、5Bを読み込み、EXCELファイルの、2A、2B、2C、2D、2Eに書き込みます。 ・CSVファイルCの1B、2B、3B、4B、5Bを読み込み、EXCELファイルの、3A、3B、3C、3D、3Eに書き込みます。 というような事をやりたいのです。 どなたか、ご指導のほどよろしくお願いします。

専門家に質問してみよう