アプリ版:「スタンプのみでお礼する」機能のリリースについて

固定長データのテキストファイルをExcelで読み込むと、スペース部分が前詰めされてしまいます。
スペースもそのままカラムとして読み込む方法はありませんでしょうか。

例えば次のような固定長データがあるとします;

No.  項目名   タイプ   桁数
1    コード    文字    6
2    状態    文字    10


テキストファイルで開くと下記のような表示です(以下、便宜上スペースを”_”で表します);

data011________1
data02_________1
data03____1_____


これをExcelにて固定長フィールドのデータとして読み込む際、
フィールドの区切り位置として6カラム目と16カラム目に矢印を置き
全てのフィールドを文字列として読みこむとExcelでは下記のように表示されます;

      A列   B列   
1行目  data01 1________1
2行目  data02 1
3行目  data03 1


ここで、B2セルとB3セルがそれぞれ

_________1
____1_____

とスペースを保持したままの形で読み込む方法はありませんでしょうか。

手動でもVBでもかまいません。ご教示頂ければ幸いです。

A 回答 (3件)

質問の書き方だが、テキストファイルの「状態を、スペースは*でも置き換えて、質問に3レコードぐらい書いて質問をすればよくわかる。


これは、データー区切り位置ースペースによって・・・-次へー上向き↑線をdata01のあとにクリックしていれて、行う操作の「結果」の質問ですよね。
(>>フィールドの区切り位置として6カラム目と16カラム目に矢印を置き・・)
現状の質問文では、上記操作のことやデータの状態が判りにくい。
最初のフィールドは、設計上6桁で、必ず6桁のデータが入っているなら6桁セルに移せば仕舞いでは。
第2フィールドは右寄せで20桁の状態はどうなっているのか。
2フィールドで終わりなら、16桁目に矢印を普通入れないのでは。
3/3の画面で7桁以後を文字列に指定しても、セルにセットされたデータでは後尾のスペースは付かない。これが困るのか?
    • good
    • 0
この回答へのお礼

申し訳ございませんが、私の日本語能力では
頂いた内容が質問への回答であるとは読み取れませんでした。

ちなみに2フィールドで終わりでも矢印を入れないと
2フィールドのカラム数が果てしない事になってしまう
(少なくともこちらが希望するものにはならない)のですが
回答者様の場合は問題ないのでしょうか。
(これもExcelのバージョンによるものでしょうか)

総じてよくわからないのですが、状況として困るので質問させていただきました。

他の方の回答にて対応いたしますので、またの機会には
わかりやすい日本語にてご教示いただければ幸いです。

ありがとうございました。

お礼日時:2011/06/16 23:34

区切り位置の機能を利用するなら、区切り位置ウィザードの3/3で、B列に該当する部分(G/標準と書かれている部分)をクリックして選択して、列のデータ形式で「文字列」にチェックを入れて「完了」してください。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
質問文にも記載いたしました通り、いずれのフィールドも
文字列としたのですが、うまくいきませんでした。
Excelのバージョンの問題でしょうか。
(ちなみに当方はExcel2007です。質問文にも書くべきでしたね。失礼いたしました。)

お礼日時:2011/06/16 23:29

固定長ですがシーケンシャルで読み出すので十分と思います。




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
    • good
    • 2
この回答へのお礼

全て理解できたわけではありませんが
ご教示頂いた内容にて、こちらの希望する通り
カラム数を保持したまま読み込むことができました。

引き続き勉強しつつ、回答頂いた内容を利用させていただきます。

ご回答ありがとうございました。

お礼日時:2011/06/16 23:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています