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

はじめまして よろしくお願いします。

エクセルで、ひとつのセル内に複数行に分けて入力してあるものを
行でそれぞれひとつのセルに分け直したい場合、

例えばA1のセルに
 1234
 aabbcc
A2のセルに
 12345
 aaabbbccc
 123
と入力してあるものを

A1→1234
A2→aabbcc
A3→12345
A4→aaabbbccc
A5→123
としたいとき、何かいい方法ありますか。

A 回答 (3件)

こんばんは。



本来、横に区切るのでしたら、メニューのデータ-区切り位置 のダイアログを使います。
(良く使うようでしたら、ユーザー設定から、区切り位置ボタンをツールメニューに貼り付けておくと便利です。)その他のところの区切り文字に、「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
    • good
    • 0
この回答へのお礼

どうもありがとうございました。今度やってみます。

お礼日時:2006/01/29 11:20

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
12ersdfg
wer
12er
3457
12er
A列A1,A2、・・・のデータをA1,A2、・・も含めて、A列に戻すのは、複雑になるので(配列などに、一旦覚えさせなければならない)分解したものを、B列にセットしてます。
関数では、2行、3行、4行などが混じると複雑になって、手に負えない。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。ちょっと私には難しそうですが時間のある時挑戦してみたいと思います。

お礼日時:2006/01/29 11:17

1.A1のセルとA2のセルを選択してコピー


2.メモ帳などのエディタへ貼り付け
3."(ダブルコーテーション)がくっついているはずなので、置換えなどで"を削除する
4.編集したものを全部選択してコピー
5.エクセルへ貼り付け

これでOK。ちょっと手間ですけど...
    • good
    • 1
この回答へのお礼

できました!どうもありがとうございました。

お礼日時:2006/01/29 11:14

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