こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

マイクロソフトのエクセルでテキストをインポートする方法について教えてく

マイクロソフトのエクセルでテキストをインポートする方法について教えてください。

※1のようなテキストをエクセルにインポートしたいのですが、通常「データ>外部データの取り込み>テキストファイルのインポート」で行うと、改行のみの行も含めてテキストの1行が1つのセルに挿入されますよね?
これを改行のみの行を区切りとして、そこまでの単位で1つのセルに挿入したいのです。
※1でいえば、aaaaaとbbbbbが1つのセルの中で改行されるカタチで挿入され、その下のセルにcccccとdddddが同様に挿入される、といった具合です。

機能でもマクロでもソフトでもどんな方法でもいいので、良い方法があれば教えてもらえませんでしょうか?


※1
aaaaa
bbbbb

ccccc
ddddd

投稿日時 - 2010-07-27 16:47:58

QNo.6068241

困ってます

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

一旦取り込んでから、編集したらどうですか。
下記は、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

ファイルを読み込みながら編集する方法もあるけどちょっと面倒なのでやめときます。

投稿日時 - 2010-07-27 18:04:49

お礼

まさにやりたかったことができました!!
プログラムの知識がなくても対応できる方法でしたのでとても助かりました。
ありがとうございました。

投稿日時 - 2010-07-28 14:04:59

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

これをやろうとするとプログラムの知識が必要になると思います。
通常の改行(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の内容”という表示になります。
(セルの書式を”折り返して全体を表示”にしないと正常に表示されないかもしれません)

投稿日時 - 2010-07-27 18:02:37

お礼

テキスト書き出し時点で言われるような形式でデータを用意することができないので、そうなると一度でやるためにはプログラムによる対応になってしまうのですね。
VBAの知識はないので難しいです・・
ありがとうございました。

投稿日時 - 2010-07-28 14:00:51

あなたにオススメの質問