
固定長データのテキストファイルを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でもかまいません。ご教示頂ければ幸いです。
No.1ベストアンサー
- 回答日時:
固定長ですがシーケンシャルで読み出すので十分と思います。
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
全て理解できたわけではありませんが
ご教示頂いた内容にて、こちらの希望する通り
カラム数を保持したまま読み込むことができました。
引き続き勉強しつつ、回答頂いた内容を利用させていただきます。
ご回答ありがとうございました。
No.3
- 回答日時:
質問の書き方だが、テキストファイルの「状態を、スペースは*でも置き換えて、質問に3レコードぐらい書いて質問をすればよくわかる。
これは、データー区切り位置ースペースによって・・・-次へー上向き↑線をdata01のあとにクリックしていれて、行う操作の「結果」の質問ですよね。
(>>フィールドの区切り位置として6カラム目と16カラム目に矢印を置き・・)
現状の質問文では、上記操作のことやデータの状態が判りにくい。
最初のフィールドは、設計上6桁で、必ず6桁のデータが入っているなら6桁セルに移せば仕舞いでは。
第2フィールドは右寄せで20桁の状態はどうなっているのか。
2フィールドで終わりなら、16桁目に矢印を普通入れないのでは。
3/3の画面で7桁以後を文字列に指定しても、セルにセットされたデータでは後尾のスペースは付かない。これが困るのか?
申し訳ございませんが、私の日本語能力では
頂いた内容が質問への回答であるとは読み取れませんでした。
ちなみに2フィールドで終わりでも矢印を入れないと
2フィールドのカラム数が果てしない事になってしまう
(少なくともこちらが希望するものにはならない)のですが
回答者様の場合は問題ないのでしょうか。
(これもExcelのバージョンによるものでしょうか)
総じてよくわからないのですが、状況として困るので質問させていただきました。
他の方の回答にて対応いたしますので、またの機会には
わかりやすい日本語にてご教示いただければ幸いです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
BLOBやCLOBのパフォーマンスを...
-
int型フィールドにnullを登録で...
-
固定長データのテキストファイ...
-
ファイルメーカー10で重複デー...
-
ファイルメーカーのフィールド...
-
Datetime型とTimestamp型の使い...
-
タイムスタンプ型を抽出条件に...
-
テーブルのフィールドの一番長...
-
Oracleで「文字が無効です」の...
-
単一グループのグループ関数で...
-
select文の実行結果に空白行を...
-
データ
-
SELECT FOR UPDATE で該当レコ...
-
count関数の値をwhere句で使用...
-
AccessのSQL文で1件のみヒット...
-
2つの列が同じ値の行を取得するSQL
-
割合(パーセント)を求めるには?
-
レコードの登録順がおかしい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
int型フィールドにnullを登録で...
-
BLOBやCLOBのパフォーマンスを...
-
配列に指定した値が含まれてい...
-
2回実行のSQL文を1回にしたい
-
最初のレコードを取得したい
-
SELECTした合計値をそのまま割...
-
テーブルのフィールドの一番長...
-
MySQLでの近似値順での値の取得...
-
UPDATE時にundefinedがセットさ...
-
MySQLからフィールド名のリスト...
-
WHERE句内でプライマリキーの検...
-
固定長データのテキストファイ...
-
チェックボックスから得る値を...
-
mysqlimportについて
-
一つのフィールドに複数の外部...
-
DateTime型の検索
-
Null値件数をカウントする式に...
-
チェックボックス連結
おすすめ情報