• ベストアンサー

文字の列を揃えるには

お世話になります。 次のようなスペースを含むテキストデータがあります。 コード 名称  材料 個数 00001  座金   sus   3  00002  ボルト   sus  4   00003ナット SWRM  5 これをエクセルで取り込む様次のように揃えたいのです。 コード  名称   材料  個数 00001  座金   sus   3 00002  ボルト  sus   4 00003  ナット  SWRM   5 ワードでマクロを組んだりしましたが、スペースの数等に 規則性が全くないため、うまくいきません。 なにか良い方策・ソフトなどご存知でしたら ご教授いただきたくお願いいたします。

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

  • ベストアンサー
  • antai
  • ベストアンサー率38% (88/227)
回答No.4

エクセルへ取り込むのは、No.2さんの方法でやってますが、その前段階として、テキストを整理するには『置換』機能のついたエディタを使ってます。とはいっても、Windowsなら『メモ帳』で十分です。 私の場合はとりあえず、TAB切りテキストにします。 TABで区切られると列がそろうので、おかしなところが目に付きやすいからです。 今回の質問にあるようなものだと、こんな具合にやります。(便宜上、全角スペースを□で表記します) まず、スペースをTABに置換します。 TABは検索の項目に入力したくても入力できないので(方法あるのかな?)、テキスト上に1つ打ち込んで『切り取り』しておきます。 それができたら 検索する文字列に“□” 置換する文字列に“TAB”(メモ帳の場合TABをペーストすると“・”が入ると思います。うちはWindows2000です。) そこで『すべてを置換』を実行します。 このままだと、スペースの数だけTABが入ってしまいますので、次に 検索する文字列に“TABTAB” 置換する文字列に“TAB” これで『すべてを置換』しましょう。 しかし今回はこの処理を何度か繰り返しやる必要があります。メモ帳だと検索した文字列がなかった場合でもとくに何も表示されないようです。これでもかというくらい『すべてを置換』をクリックしておけばいいでしょう。 最後に00001の前にTABを一つ入れます。 00003ナットのような部分には一括処理でどうやったらいいか思いつかないので、最終的には手作業をとってます。 TABでそろった物なので、ある程度はわかりやすくなるかと思います。 あとは、TEXTファイルで保存してエクセルで開けばウィザードがはじまると思います。 一番左に空の列ができますが、消去してしまえばOKでしょう。 例にあげられている物で試しましたが、一応できましたのでよければお試しください。

ddkamp
質問者

お礼

恐縮ですがここでまとめてお礼申し上げます。結果としてはNo.1様とNo.4様の方法で様子を見ながら加工し、最後にNo.2様、No.3様の方法で取り込みました。回答いただいた皆様ありがとうございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

実際のデータ数とか、「00003ナット SWRM  5」のようなデータがどれだけ混じっているか判りませんが (1)メモ帳やエディターでテキストデータのファイルを表示し、人間が見て、、「00003ナット」のようなものを見つけて、1スペースを入れてください。 (2)また先頭のスペースは除いてください。 (3)そして保存します。 (4)それをエクセルに読ませて(コピー貼りつけして) 書式-セル-配置-全体を折り返して表示するのチェックを外す。 A列を指定して、データ-区切り位置-カンマやタブ・・・を選び、スペースで分離すれば旨くセルに収まります。 VBAでも出来ますが、1000件程度なら、総体的には上記が作業時間が短いと思います。

  • imaruya
  • ベストアンサー率34% (63/181)
回答No.2

Excelでテキストファイルの読込でうまくいくと思います。その場合、区切り文字をスペースで管理して下さい。 ファイル→開く→ファイルの種類をテキストに テキストを読み込むウィザードが開かれます。 しかし、例題では >コード 名称  材料 個数 >00001  座金   sus   3 > 00002  ボルト   sus  4 >  00003ナット SWRM  5 となっており、00003の行が、00003とナットがスペースで区切られていませんので、ここにもスペースが無いとうまくいかないと思います。 テキスト読込の場合、区切り文字として、Tab、,(カンマ)、スペースなどが利用できるほか、区切り文字を指定することも出来ます。

  • nota55
  • ベストアンサー率37% (138/366)
回答No.1

CSVではき出してVBScriptと正規表現を使って ”1文字以上連続するスペース”をスペース1文字に 変換するってーのはどうでしょう。

関連するQ&A

専門家に質問してみよう