• 締切済み

エクセルで桁を揃えるために0を表示したセルをCSVでも有効にしたい

エクセルで000050.000など桁をそろえるためにユーザー定義で設定しました。ところが設定したものをテキスト(CSV)で保存したところ、桁をそろえるために入力していたものがなくなっています。000050.000でしたら、 ただの50になっています。 ためしにセルの書式設定で文字列に変更したところ同じ動きをしました。 CSVに出したとき000050.000と表示されるにはどのようにすればよろしいでしょうか? どうぞよろしくお願いいたします。

みんなの回答

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.4

おそらく、入力~表示までは期待通りの表示になっているのかと思います。 それをCSVファイルとして保存し、再度読み込むときに桁数が合わないのが不都合だ、というのがご質問の趣旨かと思います。 他の方も指摘されているようにCSVファイルは書式を持っていませんので、読み込むときに書式を設定しなければなりません。 手順はやや面倒なのですが、以下の方法をおためし下さい。 [データ]→[外部データの取り込み]→[データの取り込み]→ファイルを指定→[○カンマやタブなどの・・・]にチェック→[次へ]→[□カンマ]にチェック→[次へ]→一番左の列をクリック(反転表示)→Shiftを押しながら一番右の列(全列が反転表示)→[○文字列]にチェック→[完了]→[○既存のワークシート]にチェック→[OK]

nao21213
質問者

補足

回答ありがとうございます。 丁寧に画像までつけていただいたのに、外部データの取り込みボタンがみつかりません。 ヘルプもみましたが・・・ 2007ですが、ないはずないですよね・・・

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

関数でする方法もあります 仮にA1に 50 が入力されているとして B1に次の式を =TEXT(A1,"000000.000") B1をコピー A1に形式を選択して貼り付けで 値を選択して貼り付け 以上です

nao21213
質問者

補足

回答ありがとうございます。 いただいた関数を元に文字列にして数字とは違う左寄りのデータになりました。 しかしCSVにして保存したら、やはり書式が保持されなかったです。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

CSVにする前に以下のマクロを走らせてみてください。 NumberFormatLocal = "000000.000"の 000000.000の部分は、ご自分が設定したユーザー定義と同じにしてください。 Sub test01() For Each c In ActiveSheet.UsedRange If c.NumberFormatLocal = "000000.000" Then x = c.Text c.NumberFormatLocal = "@" c.Value = x End If Next End Sub

nao21213
質問者

補足

回答ありがとうございます. マクロで走らせてみましたが反応ありませんでした。 いろんな列でそれぞれ別の定義(00.0にしたかったり、00000.00にしたかったり・・・)がついているのですが・・・ CSVへは名前を付けて保存から「CSVカンマ区切り」を選んでいます。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

CSV形式のファイルは、セル内データ値を出力、計算式や書式は出力されません。 従って000050.000と出力させたい場合はセル内データの値が000050.000になっていなければなりません。 つまり文字列そして入力するしかないです。

nao21213
質問者

補足

ご回答ありがとうございます。 エクセル上では文字列(セル内で右寄りなっている)になっていますが、CSVになるとどうもまくいきません。

関連するQ&A

  • エクセル→CSVについて

    エクセルで編集してCSV形式で保存する場合、あるセルに8ケタの数字を入れたくて、[書式設定]-[ユーザー設定]で0を8個いれたのですが、CSV形式で保存すると8ケタになりません。 同様に「'00000001」の形で入力してみてもだめでした。 何かいい方法はありますでしょうか?

  • エクセルで12桁の数値に4桁ごとに―を入れたい

    エクセルで既に入力されている12桁の 数値列に4桁ごとにハイフンを入れたいです。 1234567890AB → 1234-5678-90AB のような感じです。   セルの書式設定でユーザー定義を使い 変換できるのではと察しているのですが、 「種類」のところにどのように指定すれば いいかわかりません。 書式設定、またはほかの方法でハイフンを 入れる方法を教えていただけますか。

  • ExcelファイルをCSVに変換した場合

    たとえばセルの書式設定でA列の数値「100」を「0100」と4桁で表示させExcelファイルをCSVに変換した場合、書式設定が反映できない為 「100」に戻ってしまうのですが、4桁を保持したい場合どうすればよいでしょうか?書式設定ではなく関数が分かれば書式を文字列に変換してからCSV形式に変換できるのですが...

  • エクセルのセルの書式で,数字が9けたあり、それが600くらい同じ形式で

    エクセルのセルの書式で,数字が9けたあり、それが600くらい同じ形式であります。その形式は3桁スペース6桁の数字(例)456 789123となっているのを、456789123と、空白をつめて一括で9ケタにしたいのですが、可能でしょうか?セルの書式設定で、ユーザー定義で試みましたがだめでした。よろしくご指導お願いします。

  • csvでの表示がおかしい

    「1.xlsx」というファイルで A1は文字列として設定してあります。 そこに、「4-1」と入力してあります。 これを「1.csv」で保存し、開くと A1は「4月1日」と表示され、ユーザー定義という設定になっています。 なぜでしょうか? これを、開いても4-1と表示されるようにしたいのですがどうすればいいですか? Excel2010 win10

  • 【エクセル】16進数の文字列を2桁ずつ区切りたい。

    16進数の文字列を入力し、表示は2桁ずつハイフンを入れながら区切りたいと思っております。 入力:00062936EA37 表示:00-06-29-36-EA-37 「セルの書式設定」→「ユーザ定義」→「種類」で いろいろ試しているのですが、わかりません。 宜しくお願い致します。

  • Excelで桁を固定して頭に0をつけたい

    どうも。メーカーに入社して1年目の者ですが、 Excelの使い方で困っています。 部品のLOT番号をExcelに注文書として入力しているのですが、 LOT番号の都合上、どうしても入力に手間がかかっています。 例えば、0001~0029番までを入力したい。 次は0030~0100番までといった感じです。 今は書式設定→ユーザー定義で頭に0001なら000#、 0029なら00##と桁が変わる度に定義し直してます。 文字列にしてもいいのですが、さらにそのLOT番号で数式を 組むので、文字列にはできないのです。 調べてみたところ*00とユーザー定義するとセル枠が許す限り 頭に0をつける機能があることを知りました。 しかしこれではセルを動かす度に0の数が変わってしまうので 加工するとまたセル幅を整えなければいけません。 LOT番号の性質上、4桁で固定して且つ、頭の0の数を入力しなくて済む 方法があれば教えていただきたく思います。 文章下手でわかりにくいかと思いますが、宜しくお願い致しします。

  • エクセルの桁表示に関して

    12,345,678,900 を 12,345と表示させる時の 「セルの書式設定」→「表示形式」→「ユーザー定義」→「##,###,,」 は分かったのですが、 「12,345.7」と5桁以下を表示させず、かつ下5桁目を四捨五入して、小数点の形で表示させる 書式設定は存在するのでしょうか? 関数で行えば、簡単にできるのは理解しているのですが、 書式設定でクリアできるのであれば、そのようにしたく。。。

  • Excelにおけるセルの表示方法

    Excelでセルに0.012と入力して0円1銭2厘と表示する方法を教えてください。セルの書式設定のユーザー定義を使ってなんとかできる思いましたが、うまくいきません。

  • excelで0が13個貼り付け

    excel2000で 000000000000(←0が13個)とセルの書式設定、ユーザー定義で設定しているセルがあります。 このセルをコピーして、貼り付けるときの方法について相談です。 excel2000で 000000000000(←0が13個)とセルの書式設定、ユーザー定義で設定しているセルがあります。 たとえば、このセルに0と入力すれば、000000000000(←0が13個)と表示されるのですが、 このセルをコピーして、ユーザー定義が文字列のセルに貼り付けていのですが、どうしても0としか貼り付けられません。 ユーザー定義が文字列のセルにも、000000000000(←0が13個)と貼り付けられるようにするにはどうすればいいでしょうか

専門家に質問してみよう