- ベストアンサー
マイクロソフトのエクセルでテキストをインポートする方法について
- マイクロソフトのエクセルでテキストをインポートする方法について教えてください。
- 通常「データ>外部データの取り込み>テキストファイルのインポート」で行うと、改行のみの行も含めてテキストの1行が1つのセルに挿入されます。しかし、改行のみの行を区切りとして、そこまでの単位で1つのセルに挿入する方法を知りたいです。
- マクロや他のソフトを使用しても構いませんが、良い方法があれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一旦取り込んでから、編集したらどうですか。 下記は、A列の文字列を質問内容のように編集してB列にセットするマクロです。 Sub test() n = 0 S = "" For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row + 1 If Cells(i, "A") <> "" Then If S <> "" Then S = S & Chr(10) S = S & Cells(i, "A") ElseIf S <> "" Then n = n + 1 Cells(n, "B") = S S = "" End If Next i End Sub ファイルを読み込みながら編集する方法もあるけどちょっと面倒なのでやめときます。
その他の回答 (1)
- fgo0326
- ベストアンサー率66% (6/9)
これをやろうとするとプログラムの知識が必要になると思います。 通常の改行(CRLF)だと、セルが別行に分かれてしまいますが、 LFにすると同一セル内に2行で取り込まれます。 例: aaaa<CR/LF>bbbb というテキストを取り込むと aaaaとbbbbが別のセルになる "aaaa<LF>bbbb" というテキストを取り込むと 同一セル内にaaaaとbbbbが2段表示になる ですので、テキスト書き出しの時点でそういう風にデータを作るか、 もしテキストの方をいじれないならExcel側でVBAを使うか。 仮に同一セル内で複数行になるのは2行までという事なら 無理矢理関数を使って出来なくもなさそうですが、 文面からは複数行になる場合、何行になるか不明のように思いますので VBAが使えなければ厳しいと思います。 ちなみに関数を使うならCHAR関数でCHAR(10)がLFですので 例えば =A1&CHAR(10)&A2 とすると、”同一セル内でA1の内容の後改行してA2の内容”という表示になります。 (セルの書式を”折り返して全体を表示”にしないと正常に表示されないかもしれません)
お礼
テキスト書き出し時点で言われるような形式でデータを用意することができないので、そうなると一度でやるためにはプログラムによる対応になってしまうのですね。 VBAの知識はないので難しいです・・ ありがとうございました。
お礼
まさにやりたかったことができました!! プログラムの知識がなくても対応できる方法でしたのでとても助かりました。 ありがとうございました。