- ベストアンサー
セル内改行位置でセルを分割する方法
はじめまして よろしくお願いします。 エクセルで、ひとつのセル内に複数行に分けて入力してあるものを 行でそれぞれひとつのセルに分け直したい場合、 例えばA1のセルに 1234 aabbcc A2のセルに 12345 aaabbbccc 123 と入力してあるものを A1→1234 A2→aabbcc A3→12345 A4→aaabbbccc A5→123 としたいとき、何かいい方法ありますか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
1.A1のセルとA2のセルを選択してコピー 2.メモ帳などのエディタへ貼り付け 3."(ダブルコーテーション)がくっついているはずなので、置換えなどで"を削除する 4.編集したものを全部選択してコピー 5.エクセルへ貼り付け これでOK。ちょっと手間ですけど...
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 本来、横に区切るのでしたら、メニューのデータ-区切り位置 のダイアログを使います。 (良く使うようでしたら、ユーザー設定から、区切り位置ボタンをツールメニューに貼り付けておくと便利です。)その他のところの区切り文字に、「Ctrl + J 」で区切りをさせて、横に出しますが、縦の場合は、まあ、一般的は、VBAで行うのが一番かもしれませんね。すでに、VBAの回答も出ているようですが、まあ、ものは試しに! '<個人用マクロブックの標準モジュールに登録し-ユーザー設定のツールボタンに取り付けたるすると便利かも。簡易型でも一通りのエラー処理はしています。切り分けないときは、ただの値コピーになります。> Sub SplitCharTen() Dim c As Range Dim i As Long Dim ar() As Variant Dim buf As Variant Dim a As Variant Dim rng As Range If TypeName(Selection) <> "Range" Then _ MsgBox "最初に、切り分ける範囲をワークシート上で指定してください。", vbInformation: Exit Sub If WorksheetFunction.CountA(Selection) = 0 Then _ MsgBox "データのある場所を指定してください。", vbInformation: Exit Sub On Error Resume Next Set rng = Application.InputBox("貼り付ける場所を指定してください。", , "$A$1", Type:=8) On Error GoTo 0 If rng Is Nothing Then Exit Sub For Each c In Selection If InStr(c.Value, vbLf) > 0 Then buf = Split(c.Value, vbLf) For Each a In buf ReDim Preserve ar(i) ar(i) = a i = i + 1 Next a Erase buf Else ReDim Preserve ar(i) ar(i) = c.Value i = i + 1 End If Next c rng.Cells(1).Resize(UBound(ar()) - LBound(ar()) + 1).Value = _ WorksheetFunction.Transpose(ar()) End Sub
お礼
どうもありがとうございました。今度やってみます。
- imogasi
- ベストアンサー率27% (4737/17070)
VBあですが、標準モジュールに Sub test01() d = Range("A65536").End(xlUp).Row K = 2 For i = 2 To d s = Split(Cells(i, "A"), Chr(10)) For j = 0 To UBound(s) Cells(K, "B") = s(j) K = K + 1 Next j Next End Sub を貼り付けて、実行してください。 例データ A列 結果B列 "12 22345" 12 "23 sdfg" 22345 "wer 12er 3457" 23 12er sdfg wer 12er 3457 12er A列A1,A2、・・・のデータをA1,A2、・・も含めて、A列に戻すのは、複雑になるので(配列などに、一旦覚えさせなければならない)分解したものを、B列にセットしてます。 関数では、2行、3行、4行などが混じると複雑になって、手に負えない。
お礼
どうもありがとうございました。ちょっと私には難しそうですが時間のある時挑戦してみたいと思います。
お礼
できました!どうもありがとうございました。