- ベストアンサー
テキストファイルの固定長データのスペースについて
- 固定長データのテキストファイルをExcelで読み込むと、スペース部分が前詰めされてしまうことについて質問です。
- 質問者は、スペースもそのままカラムとして読み込む方法があるかどうか知りたいと述べています。
- 質問に対して、手動やVBを使用してスペースを保持したままデータを読み込む方法を教えてほしいとしています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
固定長ですがシーケンシャルで読み出すので十分と思います。 Sub macro2() Dim buf As String Dim i As Long Range("A:B").NumberFormat = "@" Open "c:\test\data.txt" For Input As #1 Do Until EOF(1) i = i + 1 Line Input #1, buf Cells(i, "A") = Mid(buf, 1, 6) Cells(i, "B") = Mid(buf, 7, 10) Loop Close #1 End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
質問の書き方だが、テキストファイルの「状態を、スペースは*でも置き換えて、質問に3レコードぐらい書いて質問をすればよくわかる。 これは、データー区切り位置ースペースによって・・・-次へー上向き↑線をdata01のあとにクリックしていれて、行う操作の「結果」の質問ですよね。 (>>フィールドの区切り位置として6カラム目と16カラム目に矢印を置き・・) 現状の質問文では、上記操作のことやデータの状態が判りにくい。 最初のフィールドは、設計上6桁で、必ず6桁のデータが入っているなら6桁セルに移せば仕舞いでは。 第2フィールドは右寄せで20桁の状態はどうなっているのか。 2フィールドで終わりなら、16桁目に矢印を普通入れないのでは。 3/3の画面で7桁以後を文字列に指定しても、セルにセットされたデータでは後尾のスペースは付かない。これが困るのか?
お礼
申し訳ございませんが、私の日本語能力では 頂いた内容が質問への回答であるとは読み取れませんでした。 ちなみに2フィールドで終わりでも矢印を入れないと 2フィールドのカラム数が果てしない事になってしまう (少なくともこちらが希望するものにはならない)のですが 回答者様の場合は問題ないのでしょうか。 (これもExcelのバージョンによるものでしょうか) 総じてよくわからないのですが、状況として困るので質問させていただきました。 他の方の回答にて対応いたしますので、またの機会には わかりやすい日本語にてご教示いただければ幸いです。 ありがとうございました。
- MackyNo1
- ベストアンサー率53% (1521/2850)
区切り位置の機能を利用するなら、区切り位置ウィザードの3/3で、B列に該当する部分(G/標準と書かれている部分)をクリックして選択して、列のデータ形式で「文字列」にチェックを入れて「完了」してください。
お礼
ご回答ありがとうございます。 質問文にも記載いたしました通り、いずれのフィールドも 文字列としたのですが、うまくいきませんでした。 Excelのバージョンの問題でしょうか。 (ちなみに当方はExcel2007です。質問文にも書くべきでしたね。失礼いたしました。)
お礼
全て理解できたわけではありませんが ご教示頂いた内容にて、こちらの希望する通り カラム数を保持したまま読み込むことができました。 引き続き勉強しつつ、回答頂いた内容を利用させていただきます。 ご回答ありがとうございました。